{
 "openapi": "3.0.0",
 "servers": [
  {
   "url": "https://api.cryptoquant.com/v1",
   "description": "Default server"
  }
 ],
 "info": {
  "version": "1.3.0",
  "title": "CryptoQuant Data API",
  "termsOfService": "https://cryptoquant.com/terms-of-service",
  "contact": {
   "name": "API Support",
   "email": "contact@cryptoquant.com"
  },
  "description": "The CryptoQuant Data API provides simple and powerful endpoints to get information on general transaction data and aggregate on-chain statistics straight from the blockchain. The API root endpoint URL is `https://api.cryptoquant.com/v1/`."
 },
 "tags": [
  {
   "name": "Available Endpoints",
   "description": "Discover all available endpoints"
  },
  {
   "name": "Supported Stablecoin List",
   "description": "| Name                  |   Token        |  Supported Categories | Contract Created Datetime (Block, Datetime) | Deprecated |\n|-----------------------|----------------|-----------------------|---------------------------------------------|------------|\n| All Tokens            |   `all_token`  | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data | The earliest time in the tokens below. |\n| Tether USD(Eth)       |   `usdt_eth`   | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4638757, 2017-11-28 16:24:26 |\n| Tether USD(Trx)       |   `usdt_trx`   | - Entity Status <br/> - Exchange Flow <br/> - Network Data <br/> - Market Data | 4638757, 2017-11-28 16:24:26 |\n| Paxos Dollar          |   `usdp`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 6306166, 2018-09-10 13:03:56 |\n| USD Coin              |   `usdc`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 6307510, 2018-09-10 18:26:41 |\n| True USD              |   `tusd`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 5198636, 2018-03-05 03:30:14 |\n| Dai                   |   `dai`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 8928674, 2019-11-13 21:22:33 |\n| Binance USD           |   `busd`       | - Entity Status <br/> - Exchange Flow <br/> - Market Data | 8493105, 2019-09-05 23:56:17 |\n| Gemini dollar         |   `gusd`       | - Entity Status <br/> - Exchange Flow | 6301780, 2018-09-09 19:36:14 |\n| sUSD                  |   `susd`       | - Entity Status <br/> - Exchange Flow | 5751012, 2018-06-08 02:48:10 |\n| ~Tether USD(Omni)~    |   ~`usdt_omni`~  | - Network Data <br/> - Market Data | 325157,\t2014-10-13 14:27:52 | <a href=\"https://tether.io/news/tether-provides-an-update-on-prioritizing-community-preferences-for-blockchain-support-in-strategic-shift\" target=\"_blank\">2025-08-28</a> |\n| ~Sai (Old Dai)~       |   ~`sai`~        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4755950, 2017-12-18 19:22:10 | 2025-08-28 |\n| ~HTX USD~             |   ~`husd`~       | - Entity Status <br/> - Exchange Flow | 8174400, 2019-07-18 11:30:44 | 2025-08-28 |\n| ~USDK~                |   ~`usdk`~       | - Entity Status <br/> - Exchange Flow | 7769943, 2019-06-16 07:21:40 | 2025-08-28 |\n| ~TerraUSD~            |   ~`ust`~        | - Market Data | | 2025-08-28 |\n\nUntil now, `all_token` is available in Exchange Flow, Network Data, Flow Indicator.<br/>\nSupported tokens for `all_token` varies with categories.<br/>\nExchange Flow: `usdt_eth`, `usdt_trx`, `usdp`, `usdc`, `tusd`, `dai`, `busd`, `gusd`, `susd`<br/>\nNetwork Data: `usdt_eth`, `usdt_trx`, `usdp`, `usdc`, `tusd`, `dai`<br/>\nDeprecated: `usdt_omni`, `sai`, `husd`, `usdk`, `ust`"
  },
  {
   "name": "Supported ERC20 List",
   "description": "| Name                |   Token        | Supported Categories                                    | Contract Created Datetime (Block, Datetime)|\n|---------------------|----------------|---------------------------------------------------------|------------------------------|\n| Chainlink           |   `link`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4281611, 2017-09-16 21:26:29 |\n| Uniswap             |   `uni`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10861674, 2020-09-14 18:11:26 |\n| Sushiswap           |   `sushi`      | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10736094, 2020-08-26 12:28:07 |\n| Aave                |   `aave`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10926829, 2020-09-24 18:06:28 |\n| Maker               |   `mkr`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4620855, 2017-11-25 18:24:17 |\n| OmiseGO             |   `omg`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 3978297, 2017-07-05 02:18:58 |\n| Uma                 |   `uma`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 9247089, 2020-01-09 14:44:21 |\n| Compound            |   `comp`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 9601359, 2020-03-04 00:08:55 |\n| Basic Attention Token |   `bat`      | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 3788558, 2017-05-29 18:45:10 |\n| Synthetix           |   `snx`        | - Entity Status <br/> - Exchange Flow <br/> - Market Data | 5750875, 2018-06-08 02:14:23 |\n| Yearn.finance       |   `yfi`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10475744, 2020-07-17 08:01:25 |\n| Decentraland        |   `mana`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4162059, 2017-08-15 19:18:09 |\n| The Sandbox         |   `sand`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 8835135, 2019-10-29 16:48:43 |\n| Axie Infinity       |   `axs`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 12314534, 2021-04-26 07:16:09 |\n| Smooth Love Potion  |   `slp`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 12314545, 2021-04-26 07:18:32 |\n| Gala                |   `gala`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10828939, 2020-09-09 17:32:51 |\n| Enjin Coin          |   `enj`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4329040, 2017-10-02 01:02:07 |\n| Yield Guild Games   |   `ygg`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 12901564, 2021-07-26 11:30:17 |\n| Illuvium            |   `ilv`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 12084124, 2021-03-21 19:43:46 |\n| Adventure Gold      |   `agld`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 13142655, 2021-09-01 23:09:32 |\n| Chiliz              |   `chz`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 6585593, 2021-10-26 07:00:45 |\n| Mines of Dalarnia   |   `dar`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 13454131, 2021-10-20 10:38:06 |\n| Aavegotchi          |   `ghst`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10852634, 2020-09-13 08:48:20 |\n| MyNeighborAlice     |   `alice`      | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 11958870, 2021-03-02 12:43:37 |\n| Ethereum Name Service |   `ens`      | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 13533418, 2021-11-01 20:55:17 |\n| Dego Finance        |   `dego`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10835762, 2020-09-10 18:51:00 |\n| Origin Protocol     |   `ogn`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 6436154, 2018-10-01 23:06:11 |\n| Ethernity Chain     |   `ern`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 11749003, 2021-01-29 05:48:45 |\n| SHIBA INU           |   `shib`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10569013, 2020-07-31 18:32:43 |\n| Storj               |   `storj`      | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 3898942, 2017-06-19 16:16:35 |\n| Bluzelle            |   `blz`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4911588, 2018-01-15 08:19:33 |\n| Holo                |   `hot`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 5008746, 2018-02-01 01:21:09 |\n| Alchemix            |   `alcx`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 11937199, 2021-02-27 04:28:02 |\n| FTX Token           |   `ftt`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 7611221, 2019-04-21 13:21:27 |\n| Curve DAO Token     |   `crv`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10647806, 2020-08-12 22:17:28 |\n| Bancor              |   `bnt`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 3851136, 2017-06-10 16:02:40 |\n| 0x                  |   `zrx`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4145415, 2017-08-11 18:39:16 |\n| 1inch Network       |   `1inch`      | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 11511393, 2020-12-23 18:13:31 |\n| Kyber Network Crystal v2 |   `knc`   | - Entity Status <br/> - Exchange Flow <br/> - Network Data <br/> - Market Data | 12224343, 2021-04-12 09:04:54 |\n| dYdX                |   `dydx`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 12809555, 2021-07-12 01:37:12 |\n| DODO                |   `dodo`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10956992, 2020-09-29 10:58:50 |\n| LoopringCoin V2     |   `lrc`        | - Network Data <br/> - Market Data | 7544036, 2019-04-11 02:10:37 |\n| Ankr                |   `ankr`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 7246755, 2019-02-21 00:57:45 |\n| Polygon             |   `matic`      | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 7605604, 2019-04-20 16:34:12 |\n| Amp                 |   `amp`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10635417, 2020-08-11 00:27:19 |\n| SKALE Network       |   `skl`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10363171, 2020-06-29 21:44:26 |\n| Balancer            |   `bal`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 10299683, 2020-06-20 01:32:59 |\n| Polymath            |   `poly`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 4994844, 2018-01-29 16:34:21 |\n| Fetch.ai            |   `fet`        | - Entity Status <br/> - Exchange Flow <br/> - Market Data | 10998076, 2020-10-05 21:06:18 |\n| The Graph           |   `grt`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 11446769, 2020-12-13 20:17:13 |\n| Ocean Protocol      |   `ocean`      | - Entity Status <br/> - Exchange Flow <br/> - Network Data <br/> - Market Data | 10945544, 2020-09-27 15:54:07 |\n| Numeraire           |   `nmr`        | - Entity Status <br/> - Exchange Flow <br/> - Market Data | 3902326, 2017-06-20 08:10:37 |\n| Mask Network        |   `mask`       | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 11886238, 2021-02-19 08:26:41 |\n| JasmyCoin           |   `jasmy`      | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 9164378, 2019-12-26 05:59:52 |\n| Gitcoin             |   `gtc`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 12422079, 2021-05-12 21:48:02 |\n| Keep Network        |   `keep`       | - Entity Status <br/> - Network Data <br/> - Market Data | 9958363, 2020-04-28 02:52:46 |\n| Quant               |   `qnt`        | - Entity Status <br/> - Exchange Flow <br/> - Market Data | 5392950, 2018-04-06 19:52:41 |\n| Voyager Token       |   `vgx`        | - Entity Status <br/> - Exchange Flow <br/> - Flow Indicator <br/> - Network Data <br/> - Market Data | 12916697, 2021-07-28 21:11:47 |\n| ParaSwap            |   `psp`        | - Network Data                     | 13619386, 2021-11-15 08:58:18 |\n| Immutable X         |   `imx`        | - Network Data                     | 13415141, 2021-10-14 07:59:20 |\n| Highstreet Token    |   `high`       | - Network Data                     | 13395328, 2021-10-11 05:00:48 |\n| Radio Caca V2       |   `raca`       | - Network Data                     | 13369114, 2021-10-07 02:16:48 |\n| Temple DAO          |   `temple`     | - Network Data                     | 13321581, 2021-09-29 15:52:47 |\n| Gods Unchained      |   `gods`       | - Network Data                     | 12955434, 2021-08-04 12:08:03 |\n| Ribbon Finance      |   `rbn`        | - Network Data                     | 12497174, 2021-05-24 13:12:02 |\n| dHedge DAO Token    |   `dht`        | - Network Data                     | 10833180, 2020-09-10 09:35:31 |\n| Cream Finance       |   `cream`      | - Network Data                     | 10594024, 2020-08-04 15:06:57 |\n| Meta                |   `mta`        | - Network Data                     | 10450640, 2020-07-13 10:23:56 |\n| Alchemy             |   `ach`        | - Network Data                     | 8482162, 2019-09-04 07:00:52  |\n| PlayDapp Token      |   `pla`        | - Network Data                     | 9921528, 2020-04-22 09:40:15  |\n| Efinity Token       |   `efi`        | - Network Data                     | 12349290, 2021-05-01 04:06:34 |\n| Prometeus Network   |   `prom`       | - Network Data                     | 7789253, 2019-05-19 07:49:05  |\n| Armor               |   `armor`      | - Network Data                     | 11707709, 2021-07-22 21:23:49 |\n| Popsicle Finance    |   `ice`        | - Network Data                     | 12121350, 2021-03-27 13:30:15 |\n| Liquity: LQTY Token |   `lqty`       | - Network Data                     | 12178618, 2021-04-05 08:33:10 |\n| Human Token         |   `hmt`        | - Network Data                     | 12184475, 2021-04-06 06:22:26 |\n| Wrapped BTC         |   `wbtc`       | - Network Data                     | 6766284, 2018-11-24 21:45:52 |\n| GateChain Token     |   `gt`         | - Network Data                     | 7726894, 2019-05-09 14:20:19 |\n| Crypto.com Coin     |   `cro`        | - Network Data                     | 6702068, 2018-11-14 09:11:48 |\n| OKB Token           |   `okb`        | - Network Data                     | 7641712, 2019-04-26 07:47:59 |\n| 0x (ZRX)            |   `zrx`        | - Network Data                     | 4145415, 2017-08-11 18:39:16 |\n| Gnosis              |   `gno`        | - Network Data                     | 3557596, 2017-04-18 13:45:16 |\n| Covalent Query Token|   `cqt`        | - Network Data                     | 12474448, 2021-05-21 12:15:53 |\n| Request             |   `req`        | - Network Data                     | 4345153, 2017-10-07 15:47:37 |\n| Kucoin Token        |   `kcs`        | - Network Data                     | 11638804, 2021-01-12 07:29:47 |\n| Olympus             |   `ohm`        | - Network Data                     | 12084967, 2021-03-21 22:48:40 |\n| HTX Token           |   `ht`         | - Network Data                     | 5005233, 2018-01-31 10:50:02 |"
  },
  {
   "name": "Supported Alt List",
   "description": "| Name                |   Token        | Supported Categories               |\n|---------------------|----------------|------------------------------------|\n| Cardano             |   `ada`        | - Market Data                      |\n| Algorand            |   `algo`       | - Market Data                      |\n| Arweave             |   `ar`         | - Market Data                      |\n| Cosmos              |   `atom`       | - Market Data                      |\n| Auto                |   `auto`       | - Market Data                      |\n| Avalanche           |   `avax`       | - Market Data                      |\n| BNB                 |   `bnb`        | - Market Data                      |\n| PancakeSwap         |   `cake`       | - Market Data                      |\n| Celo                |   `celo`       | - Market Data                      |\n| Dash                |   `dash`       | - Market Data                      |\n| Decred              |   `dcr`        | - Market Data                      |\n| Dogecoin            |   `doge`       | - Market Data                      |\n| Polkadot            |   `dot`        | - Market Data                      |\n| Elrond              |   `egld`       | - Market Data                      |\n| Ethereum Classic    |   `etc`        | - Market Data                      |\n| Filecoin            |   `fil`        | - Market Data                      |\n| Flow                |   `flow`       | - Market Data                      |\n| Fantom              |   `ftm`        | - Market Data                      |\n| Hedera              |   `hbar`       | - Market Data                      |\n| Helium              |   `hnt`        | - Market Data                      |\n| Internet Computer   |   `icp`        | - Market Data                      |\n| IOTA                |   `iota`       | - Market Data                      |\n| IoTeX               |   `iotx`       | - Market Data                      |\n| Kusama              |   `ksm`        | - Market Data                      |\n| Terra               |   `luna`       | - Market Data                      |\n| Mina                |   `mina`       | - Market Data                      |\n| NEAR Protocol       |   `near`       | - Market Data                      |\n| Neo                 |   `neo`        | - Market Data                      |\n| Harmony             |   `one`        | - Market Data                      |\n| Qtum                |   `qtum`       | - Market Data                      |\n| Oasis Network       |   `rose`       | - Market Data                      |\n| THORChain           |   `rune`       | - Market Data                      |\n| Ravencoin           |   `rvn`        | - Market Data                      |\n| Solana              |   `sol`        | - Market Data                      |\n| Stacks              |   `stx`        | - Market Data                      |\n| Theta Fuel          |   `tfuel`      | - Market Data                      |\n| Theta Nwetwork      |   `theta`      | - Market Data                      |\n| TRON                |   `trx`        | - Market Data                      |\n| VeChain             |   `vet`        | - Market Data                      |\n| Waves               |   `waves`      | - Market Data                      |\n| WAX                 |   `waxp`       | - Market Data                      |\n| eCash               |   `xec`        | - Market Data                      |\n| NEM                 |   `xem`        | - Market Data                      |\n| Stellar             |   `xlm`        | - Market Data                      |\n| Monero              |   `xmr`        | - Market Data                      |\n| Tezos               |   `xtz`        | - Market Data                      |\n| Zcash               |   `zec`        | - Market Data                      |"
  },
  {
   "name": "BTC Entity Status",
   "description": "Entity List of Bitcoin API with Status"
  },
  {
   "name": "BTC Network Data",
   "description": "Bitcoin on-chain network data including but not limited to token movements, fees, supply, address movements, etc. All metrics have data entries starting from the genesis block (block height 0, datetime 2009-01-03 18:15:05)."
  },
  {
   "name": "BTC Market Data",
   "description": "This namespace contains endpoints to retrieve metrics related to the value of Bitcoin, including price, open interest, market cap, realized cap, etc. On top of providing basic market data like price and market cap, we focus on onchain indicators in order to evaluate the true value of Bitcoin. These indicators have been commonly used in building long term valuations, and identifying lows and highs. For more detailed information, please refer to the description of each metric."
  },
  {
   "name": "BTC Fund Data",
   "description": "This namespace cointains endpoints to retreive metrics related to regulated funds such as trust, including market price, market volume, market premium, and digital asset holdings. These metrics are useful to measure sentiments of investors such as institutions in regulated market. All Symbol will be updated no later then UTC 12:00, this may be changed depending on update time of source data. Also the return value may be changed because of late updated fund.\n\n<br/>\n\n### Supported Symbols\n| Name                                        | Symbol      |   Status    |  Source               |\n|---------------------------------------      |-------------|-------------|-----------------------|\n| All Symbol (BTC)                            | `all_symbol`| Validated   | All Fund |\n| Grayscale Bitcoin Trust (GBTC)              | `gbtc`      | Validated   | Grayscale Investments |\n| Grayscale Bitcoin Mini Trust (BTC)          | `btc`       | Validated   | Grayscale Investments |\n| iShares Bitcoin Trust ETF (IBIT)            | `ibit`      | Validated   | BlackRock |\n| Fidelity Bitcoin Fund ETF (FBTC)            | `fbtc`      | Validated   | Fidelity |\n| Bitwise Bitcoin ETF (BITB)                  | `bitb`      | Validated   | Bitwise |\n| ARK 21Shares Bitcoin ETF (ARKB)             | `arkb`      | Validated   | ARK Investment / 21Shares |\n| Invesco Galaxy Bitcoin ETF (BTCO)           | `btco`      | Validated   | Invesco |\n| VanEck Bitcoin Trust (HODL)                 | `hodl`      | Validated   | VanEck |\n| Franklin Bitcoin ETF (EZBC)                 | `ezbc`      | Validated   | Franklin Templeton |\n| WisdomTree Bitcoin Fund (BTCW)              | `btcw`      | Validated   | WisdomTree |\n| The Coinshares Valkyrie Bitcoin Fund (BRRR) | `brrr`      | Validated   | Valkyrie |\n| Purpose Bitcoin ETF (BTCC.U)                | `btcc_u`    | Validated   | Purpose Investments |\n| ETC Group Bitcoin ETF (BTCE)                | `btce`      | Validated   | ETC Group |"
  },
  {
   "name": "BTC Exchange Flows",
   "description": "This endpoint returns the flows of BTC into exchange wallets for as far back as we track.\nWe constantly keep updating new exchange wallets, which means that there can be slight modification in values especially for recent data points.\nThe update is done in periodic and automatic way: Tuesday 00:00 UTC every week.\nSupported exchanges can be found in the `/btc/status/entity-list` endpoint.\nIn addition to that, we support the following aggregated exchanges:\n\n<br/>\n\n### Supported Aggregated Exchanges\n| Name           |   Exchange     |   Status    |\n|----------------|--------------|-------------|\n| All Exchanges  | `all_exchange`  | Validated   |\n| Spot Exchanges  | `spot_exchange`  | Validated   |\n| Derivative Exchanges  | `derivative_exchange`  | Validated   |\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new exchange wallets are discovered, added, and validated.\n\n\n<br/>"
  },
  {
   "name": "BTC Miner Flows",
   "description": "This namespace contains endpoints to retrieve data related to Bitcoin miners(i.e. mining pools and its participants). We provide metrics related to miner reserves, inflows, outflows, hashrate, revenue, workers, etc.\nWe constantly keep updating new miner wallets, which means that there can be slight modification in values especially for recent data points.\nThe update is done in periodic and automatic way: Tuesday 00:00 UTC every week.\nSupported miners can be found in the `/btc/status/entity-list` endpoint.\nIn addition to that, we support the following aggregated miners:\n\n<br/>\n\n### Supported Aggregated Miners\n\n| Name           |   Miner     |   Status    |\n|----------------|--------------|-------------|\n| All Miners     | `all_miner`    | Validated   |\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new miners wallets are discovered, added, and validated.\n\n<br/>"
  },
  {
   "name": "BTC Inter Entity Flows",
   "description": "This namespace contains endpoints to retrieve inter entity flows data (e.g. flow between miners and exchanges). Data entries were collected from the first transaction between two entities.\nWe constantly keep updating new entity wallets, which means that there can be slight modification in values especially for recent data points.\nThe update is done in periodic and automatic way: Tuesday 00:00 UTC every week.\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new entity wallets are discovered, added, and validated.\n\n<br/>"
  },
  {
   "name": "BTC Network Indicator",
   "description": "This namespace contains endpoints to retrieve NVT ratio, Stock to Flow ratio, and etc. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin. For more detailed information, please refer to the description of each metric."
  },
  {
   "name": "BTC Market Indicator",
   "description": "This namespace contains endpoints to retrieve MVRV(Market-Value-to-Realized-Value), Estimated Leverage Ratio, and etc. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin.\nWe also provide USD and USDT spot price of BTC from global exchanges and BTC index price. CryptoQuant's BTC index price is VWAP(Volume Weighted Average Price) of aggregated price data from all exchanges we provide.\nFor more detailed information, please refer to the description of each metric."
  },
  {
   "name": "BTC Mempool Statistics",
   "description": "This namespace contains endpoints to retrieve statistics on Memory Pool in Bitcoin network. We provide certain metrics such as transaction count, total transaction size, total transaction fee on memory pool, based on fee range, including aggregated metrics.\nFor more detailed information, please refer to the description of each metric."
  },
  {
   "name": "BTC Lightning Statistics",
   "description": "This namespace contains endpoints to retrieve statistics on Lightning Network. We provide certain metrics such as the number of channel, nodes and network capacity from lightning network.\nFor more detailed information, please refer to the description of each metric."
  },
  {
   "name": "BTC Flow Indicator",
   "description": "This namespace contains endpoints to retrieve Fund Flow ratio, Miners' Position Index(MPI), and etc. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin. For more detailed information, please refer to the description of each metric.\n\n<br/>\n\n> **Note:**  This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new exchange wallets are discovered, added, and validated.\n\n<br/>"
  },
  {
   "name": "BTC Miner Data",
   "description": "This namespace contains endpoints to retrieve statistics on Bitcoin miners. We provide certain metrics such as rewards from coinbase or miners, the number of production reported from miners, the number of transaction and the number of address\n For more detailed information, please refer to the description of each metric."
  },
  {
   "name": "ETH Entity Status",
   "description": "Entity List of Ethereum API with Status"
  },
  {
   "name": "ETH Network Data",
   "description": "Ethereum on-chain network data including but not limited to token movements, fees, supply, address movements, etc. All metrics have data entries starting from the genesis block (block height `0`, datetime `2015-07-30 15:26:13`)."
  },
  {
   "name": "ETH Exchange Flows",
   "description": "This endpoint returns the flows of ETH into exchange wallets for as far back as we track.\nWe constantly keep updating new exchange wallets, which means that there can be slight modification in values especially for recent data points.\nThe update is done in periodic and automatic way: Tuesday 00:00 UTC every week.\nSupported exchanges can be found in the `/eth/status/entity-list` endpoint.\nIn addition to that, we support the following aggregated exchanges:\n\n<br/>\n\n### Supported Aggregated Exchanges\n| Name           |   Exchange     |   Status    |\n|----------------|--------------|-------------|\n| All Exchanges  | `all_exchange`  | Validated   |\n| Spot Exchanges  | `spot_exchange`  | Validated   |\n| Derivative Exchanges  | `derivative_exchange`  | Validated   |\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new exchange wallets are discovered, added, and validated.\n\n<br/>"
  },
  {
   "name": "ETH Market Data",
   "description": "This namespace contains endpoints to retrieve metrics related to the value of ETH including price, etc.\nWe provide USD and USDT spot price of ETH from global exchanges and ETH index price. CryptoQuant's ETH index price is VWAP(Volume Weighted Average Price) of aggregated price data from all exchanges we provide.\nFor more detailed information, please refer to the description of each metric."
  },
  {
   "name": "ETH Market Indicator",
   "description": "This namespace contains endpoints to retrieve Estimated Leverage Ratio. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of ethereum. For more detailed information, please refer to the description of each metric."
  },
  {
   "name": "ETH Flow Indicator",
   "description": "This namespace contains endpoints to retrieve entity flow based indicators. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin. For more detailed information, please refer to the description of each metric."
  },
  {
   "name": "ETH Fund Data",
   "description": "This namespace cointains endpoints to retreive metrics related to regulated funds such as trust, including market price, market volume, market premium, and digital asset holdings. These metrics are useful to measure sentiments of investors such as institutions in regulated market. All Symbol will be updated no later then UTC 12:00, this may be changed depending on update time of source data. Also the return value may be changed because of late updated fund.\n\n<br/>\n\n### Supported Symbols\n| Name                                  | Symbol      |   Status    |  Source               |\n|---------------------------------------|-------------|-------------|-----------------------|\n| All Symbol (ETH)                      | `all_symbol`| Validated   | All Fund |\n| Grayscale Ethereum Trust (ETHE)       | `ethe`      | Validated   | Grayscale Investments |\n| Grayscale Ethereum Mini Trust (ETH)   | `eth`       | Validated   | Grayscale Investments |\n| iShares Ethereum Trust ETF (ETHA)     | `etha`      | Validated   | BlackRock |\n| Fidelity Ethereum Fund ETF (FETH)     | `feth`      | Validated   | Fidelity |\n| Bitwise Ethereum ETF (ETHW)           | `ethw`      | Validated   | Bitwise |\n| 21Shares Ethereum Core ETP (CETH)     | `ceth`      | Validated   | 21Shares |\n| Invesco Galaxy Ethereum ETF (QETH)    | `qeth`      | Validated   | Invesco |\n| VanEck Ethereum ETF (ETHV)            | `ethv`      | Validated   | VanEck |\n| Franklin Ethereum ETF (EZET)          | `ezet`      | Validated   | Franklin Templeton |\n| Purpose Ether ETF (ETHH.U)            | `ethh_u`    | Validated   | Purpose Investments |"
  },
  {
   "name": "ETH 2.0",
   "description": "Genesis event of ETH 2.0 requires at least 16,384 of 32-ETH validator deposits seven days before Dec 1. If not, the genesis event would postpone seven days after. We have only valid transactions in the calculations. Looking at the ETH2 deposit contract, Only from 32 to 1000 deposits are considered as valid deposits.\nWhen Phase 0 success rate hits 100% and Phase 0 unique validator hits 16,384, the Ethereum genesis event starts."
  },
  {
   "name": "Stablecoin Entity Status",
   "description": "Entity List of Stablecoin API with Status"
  },
  {
   "name": "Stablecoin Exchange Flows",
   "description": "This endpoint returns the flows of Stablecoin tokens into exchange wallets for as far back as we track. Please note that the transfer generally occurs after a certain amount of time from the contract created time.\nWe constantly keep updating new exchange wallets, which means that there can be slight modification in values especially for recent data points.\nThe update is done in periodic and automatic way: Tuesday 00:00 UTC every week.\nSupported exchanges can be found in the `/stablecoin/status/entity-list` endpoint.\nIn addition to that, we support the following aggregated exchanges:\n\n<br/>\n\n### Supported Aggregated Exchanges\n| Name       |   Exchange       | Supported Stablecoins |\n|----------------|----------------|-------------------------------|\n|   All Exchanges| `all_exchange` | All Tokens |\n| Spot Exchanges  | `spot_exchange`  | All Tokens   |\n| Derivative Exchanges  | `derivative_exchange`  | All Tokens   |\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new exchange wallets are discovered, added, and validated.\n\n<br/>"
  },
  {
   "name": "Stablecoin Network Data",
   "description": "This namespace contains endpoint to retrieve on-chain network data for stablecoins including token transfers, issuance, addresses, etc. The earliest data point of each token is listed as Contract Created Datetime. [here](#tag/Stablecoin Status)\n### Stablecoin Issuing Mechanism\nEach individual Stablecoin is created by an issuing company and each of these companies operates with a different issue mechanism.\nThere are many of these but the two most common are as follows.\n#### Example 1\n![Ussuing Methodology 1](/docs/images/stable1.png)\nBefore providing clients with the granting address, the issuing company holds a treasury address. Through the contract, the tokens are minted and held in the treasury address. Once the client sends fiat currency, the clients tokens are moved from the treasury address to the client address and the tokens are listed as being issued.\nConversely, when redeeming tokens for fiat, the tokens are sent to the treasury address and redeemed. This won't be reflected in the supply unless these tokens are burned using a contract by the issuing company. The circulating supply is calculated as tokens that have been issued to clients, ignoring the supply held in the issuing company wallets.\n#### Example 2\n![Ussuing Methodology 2](/docs/images/stable2.png)\nIn this method, there is no separate treasury address. After confirming the deposit of fiat, tokens are minted from the contract address and delivered directly to the client address. Minting and issuance occur simultaneously. When clients redeem tokens, the burn and redemption also are simultaneous.\nThis means that with this method, total supply and circulating supply will be the same. There are various methods for Stablecoin issuance, and we calculated supply and locate significant transactions.  based upon these types of factors. In the future, mint/issue/burn/redeem will be added our available metrics and will be defined as listed below.\n#### Terminology\n| Term           |   Definition  |\n|----------------|---------------|\n| Mint           |  Mint is a creation of new tokens that add to the supply. When tokens are minted, the total supply will increase.|\n| Issue          |  Issue is when tokens are delivered to clients after deposit of fiat has been confirmed. When tokens are issued, the circulating supply will increase.|\n| Burn           |  Burn is a revocation of currently existing tokens that results in a decreased supply. The opposite of Mint.|\n| Redeem         |  Redeem is an exchange of tokens for deposited fiat that results in a decrease in the circulating supply. The opposite of Issue.|"
  },
  {
   "name": "Stablecoin Market Data",
   "description": "This namespace contains endpoints to retrieve metrics related to the value of tokens, including price, market cap, etc."
  },
  {
   "name": "Stablecoin Flow Indicator",
   "description": "This namespace contains endpoints to retrieve entity flow based indicators. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin. For more detailed information, please refer to the description of each metric."
  },
  {
   "name": "ERC20 Entity Status",
   "description": "Entity List of ERC20 API with Status"
  },
  {
   "name": "ERC20 Exchange Flows",
   "description": "This endpoint returns the flows of ERC20 tokens into exchange wallets for as far back as we track. Please note that the transfer generally occurs after a certain amount of time from the contract created time.\nWe constantly keep updating new exchange wallets, which means that there can be slight modification in values especially for recent data points.\nThe update is done in periodic and automatic way: Tuesday 00:00 UTC every week.\nSupported exchanges can be found in the `/erc20/status/entity-list` endpoint.\nIn addition to that, we support the following aggregated exchanges:\n\n<br/>\n\n### Supported Aggregated Exchanges\n| Name       |   Exchange       | Supported ERC20 Tokens |\n|----------------|----------------|-------------------------------|\n|   All Exchanges  | `all_exchange` | All Tokens |\n|   Spot Exchanges  | `spot_exchange` | All Tokens |\n|   Derivative Exchanges  | `derivative_exchange` | All Tokens |\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new exchange wallets are discovered, added, and validated.\n\n<br/>"
  },
  {
   "name": "ERC20 Market Data",
   "description": "This namespace contains endpoints to retrieve metrics related to the value of tokens."
  },
  {
   "name": "ERC20 Flow Indicator",
   "description": "This namespace contains endpoints to retrieve entity flow based indicators.\nWe provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin.\nFor more detailed information, please refer to the description of each metric.\n"
  },
  {
   "name": "Alt Market Data",
   "description": "This namespace contains endpoints to retrieve metrics related to the value of tokens."
  },
  {
   "name": "XRP Entity Flows",
   "description": "This namespace contains endpoints to retrieve metrics related to XRP Entity Flows.\nCurrently, We only supports Exchanges for available entities\n\n### Supported Exchanges\n| Name       |\n|------------|\n| Binance    |\n| Bitfinex   |\n| Bitget     |\n| Bithumb    |\n| Bitstamp   |\n| Bybit      |\n| Gate.io    |\n| HTX Global |\n| Kucoin     |\n| OKX        |\n| Upbit      |\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new exchange wallets are discovered, added, and validated.\n\n<br/>"
  },
  {
   "name": "XRP Flow Indicator",
   "description": "This namespace contains endpoints to retrieve metrics related to XRP Flow Indicators."
  },
  {
   "name": "XRP Market Data",
   "description": "This namespace contains endpoints to retrieve metrics related to XRP Market Data."
  },
  {
   "name": "XRP Network Data",
   "description": "This namespace contains endpoints to retrieve metrics related to XRP Network Data."
  },
  {
   "name": "XRP Network Indicator",
   "description": "This namespace contains endpoints to retrieve metrics related to XRP Network Indicators."
  },
  {
   "name": "XRP Dex Data",
   "description": "This namespace contains endpoints to retrieve metrics related to XRP Dex."
  },
  {
   "name": "XRP AMM Data",
   "description": "This namespace contains endpoints to retrieve metrics related to XRP AMM Data.\n\n<br/>\n\n### Supported AMM Pairs\n\n| Name           |     AMM Account   |   AMM     |   Status    |\n|----------------|-------------|--------------|-------------|\n| MAG/XRP     |`rNZ2ZVF1ZU34kFQvcN4xkFAvdSvve5bXce`| `mag-xrp`    | Validated   |\n| XGO/XRP     |`rLeAEvRQ5RnN6LJnZ29Xw4pboWfKqYut3c`| `xgo-xrp`    | Validated   |\n| SOLO/XRP     |`rMEJo9H5XvTe17UoAJzj8jtKVvTRcxwngo`| `solo-xrp`    | Validated   |\n| USDC/XRP     |`rGHt6LT5v9DVaEAmFzj5ciuxuj41ZjLofs`| `usdc-xrp`    | Validated   |\n| BTC/XRP     |`rQBeAghWHEwWvKShryBSa5yR3VRX9oyQ5T`| `btc-xrp`    | Validated   |\n| USD/XRP     |`rHUpaqUPbwzKZdzQ8ZQCme18FrgW9pB4am`| `usd-xrp`    | Validated   |\n| XPM/XRP     |`rakZprdzwsUJ1rD2ouhYYAVP7tPbhrCbtz`| `xpm-xrp`    | Validated   |\n| CSC/XRP     |`rf7g4JWCxu9oE1MKsWTihL9whY75AphCaV`| `csc-xrp`    | Validated   |\n| RLT/XRP     |`rwzCasMZW2WisfohuMCVWdDD58HK9QtDyC`| `rlt-xrp`    | Validated   |\n| CORE/XRP     |`rBu4LXTxM9cfs3JsFCuDbPMzvGBDR66wpi`| `core-xrp`    | Validated   |"
  },
  {
   "name": "TRX Market Data",
   "description": "This namespace contains endpoints to retrieve metrics related to TRX Market Data."
  },
  {
   "name": "TRX Network Data",
   "description": "This namespace contains endpoints to retrieve metrics related to TRX Network Data."
  },
  {
   "name": "Latency",
   "description": "Data freshness. Append `/latency` to any v1 data endpoint to see how long after a block its data becomes collectable and fully processed."
  }
 ],
 "x-tagGroups": [
  {
   "name": "Discovery",
   "tags": [
    "Available Endpoints",
    "Supported Stablecoin List",
    "Supported ERC20 List",
    "Supported Alt List"
   ]
  },
  {
   "name": "Bitcoin",
   "tags": [
    "BTC Entity Status",
    "BTC Exchange Flows",
    "BTC Flow Indicator",
    "BTC Market Indicator",
    "BTC Network Indicator",
    "BTC Miner Flows",
    "BTC Inter Entity Flows",
    "BTC Fund Data",
    "BTC Market Data",
    "BTC Miner Data",
    "BTC Network Data",
    "BTC Mempool Statistics",
    "BTC Lightning Statistics"
   ]
  },
  {
   "name": "Ethereum",
   "tags": [
    "ETH Entity Status",
    "ETH Exchange Flows",
    "ETH Flow Indicator",
    "ETH Market Indicator",
    "ETH 2.0",
    "ETH Fund Data",
    "ETH Market Data",
    "ETH Network Data"
   ]
  },
  {
   "name": "XRP",
   "tags": [
    "XRP Entity Status",
    "XRP Entity Flows",
    "XRP Flow Indicator",
    "XRP Market Data",
    "XRP Network Data",
    "XRP Network Indicator",
    "XRP Dex Data",
    "XRP AMM Data"
   ]
  },
  {
   "name": "TRX",
   "tags": [
    "TRX Market Data",
    "TRX Network Data",
    "TRX DEFI"
   ]
  },
  {
   "name": "Stablecoin",
   "tags": [
    "Stablecoin Entity Status",
    "Stablecoin Exchange Flows",
    "Stablecoin Flow Indicator",
    "Stablecoin Market Data",
    "Stablecoin Network Data"
   ]
  },
  {
   "name": "ERC20",
   "tags": [
    "ERC20 Entity Status",
    "ERC20 Exchange Flows",
    "ERC20 Flow Indicator",
    "ERC20 Market Data",
    "ERC20 Network Data"
   ]
  },
  {
   "name": "Alt",
   "tags": [
    "Alt Market Data"
   ]
  },
  {
   "name": "Utilities",
   "tags": [
    "Latency"
   ]
  }
 ],
 "paths": {
  "/discovery/endpoints": {
   "get": {
    "tags": [
     "Available Endpoints"
    ],
    "summary": "Endpoints",
    "description": "This endpoint returns all endpoints we support with available parameters.",
    "operationId": "EndpointsList",
    "parameters": [
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/discovery/endpoints\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/discovery/endpoints\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/discovery/endpoints\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/discovery/endpoints\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/discovery/endpoints\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "All endpoints we support.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "data"
           ],
           "properties": {
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "path",
               "parameters"
              ],
              "properties": {
               "path": {
                "type": "string",
                "description": "It represents the path of the endpoint."
               },
               "parameters": {
                "type": "string",
                "description": "It represents the parameters required for the corresponding endpoint."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "data": [
           {
            "path": "/v1/btc/network-data/block-bytes",
            "parameters": {
             "window": [
              "block",
              "day",
              "hour"
             ]
            },
            "required_parameters": []
           },
           {
            "path": "/v1/btc/network-data/block-interval",
            "parameters": {
             "window": [
              "block",
              "day",
              "hour"
             ]
            },
            "required_parameters": []
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/status/entity-list": {
   "get": {
    "tags": [
     "BTC Entity Status"
    ],
    "summary": "Entity List",
    "description": "This endpoint returns entity list to serve data.\nThe meaning of the `market_type` value of the exchange object is as follows. For exchange objects, the `market_type` field tells whether the exchange is a spot exchange or a derivative exchange. Entities without a market type, such as miners, will return 0 for `market_type`.\n|  Exchange Market Type  |  Description         |\n|------------------------|----------------------|\n|  0                     |  Undefined           |\n|  1                     |  Spot Exchange       |\n|  2                     |  Derivative Exchange |",
    "operationId": "getBTCEntityList",
    "parameters": [
     {
      "description": "A type from the entity in exchange, bank, miner.",
      "explode": false,
      "in": "query",
      "name": "type",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "exchange"
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/status/entity-list?type=exchange\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/status/entity-list?type=exchange\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/status/entity-list?type=exchange\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/status/entity-list?type=exchange\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/status/entity-list?type=exchange\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Entity list on a given type.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "type",
            "data"
           ],
           "properties": {
            "type": {
             "type": "string",
             "description": "Type of given entity list. This field is one of \"exchange\", \"miner\""
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "name",
               "symbol",
               "is_validated",
               "market_type"
              ],
              "properties": {
               "name": {
                "type": "string",
                "description": "The name of entity."
               },
               "symbol": {
                "type": "string",
                "description": "The name of calling symbol."
               },
               "is_validated": {
                "type": "integer",
                "description": "Entity is validated or in progress."
               },
               "market_type": {
                "type": "integer",
                "description": "Market type of entity."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "data": [
           {
            "name": "AAX",
            "symbol": "aax",
            "is_validated": 0,
            "market_type": 2,
            "is_spot": 0,
            "is_derivative": 0
           },
           {
            "name": "ABCC",
            "symbol": "abcc",
            "is_validated": 0,
            "market_type": 1,
            "is_spot": 0,
            "is_derivative": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/exchange-flows/reserve": {
   "get": {
    "tags": [
     "BTC Exchange Flows"
    ],
    "summary": "Reserve",
    "description": "This endpoint returns the full historical on-chain balance of Bitcoin exchanges.\n\n**📖 Data Guide:** [Exchange Reserve](/data-guide/exchange/exchange-reserve) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetReserve",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of BTC on a given exchange on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "reserve",
               "reserve_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "reserve": {
                "type": "number",
                "description": "The amount of BTC on a given exchange."
               },
               "reserve_usd": {
                "type": "number",
                "description": "The USD value of BTC held by an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "reserve": 653779.17,
            "reserve_usd": 58086383386.12
           },
           {
            "date": "2026-06-14",
            "reserve": 654471.03,
            "reserve_usd": 58147853341.7
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/exchange-flows/netflow": {
   "get": {
    "tags": [
     "BTC Exchange Flows"
    ],
    "summary": "Netflow",
    "description": "The difference between coins flowing into exchanges and flowing out of exchanges. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetExchangeNetflow",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "netflow_total",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "netflow_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "netflow_total": {
                "type": "number",
                "description": "The difference between coins flowing into/out of exchanges."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "netflow_total": -691.862262
           },
           {
            "date": "2026-06-14",
            "netflow_total": -1495.94
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/exchange-flows/inflow": {
   "get": {
    "tags": [
     "BTC Exchange Flows"
    ],
    "summary": "Inflow",
    "description": "This endpoint returns the inflow of BTC into exchange wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into exchange wallets on a given day.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetInflow",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "inflow_total, inflow_top10, inflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "inflow_total",
               "inflow_top10",
               "inflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "inflow_total": {
                "type": "number",
                "description": "The total amount of BTC that transferred to the exchange."
               },
               "inflow_top10": {
                "type": "number",
                "description": "The total BTC amount of top 10 transactions (in terms of total BTC sent) flowing into exchange wallets for every day that the exchange wallets we track have been live on the blockchain."
               },
               "inflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "inflow_total": 2162.57,
            "inflow_top10": 1603.41,
            "inflow_mean": 39.31954456
           },
           {
            "date": "2026-06-14",
            "inflow_total": 2358.2,
            "inflow_top10": 1099.73,
            "inflow_mean": 22.67501607
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/exchange-flows/outflow": {
   "get": {
    "tags": [
     "BTC Exchange Flows"
    ],
    "summary": "Outflow",
    "description": "This endpoint returns the outflow of BTC into exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing into exchange wallets on a given day.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetOutflow",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "outflow_total, outflow_top10, outflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "outflow_total",
               "outflow_top10",
               "outflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "outflow_total": {
                "type": "number",
                "description": "The total amount of BTC that traneferred from the exchange"
               },
               "outflow_top10": {
                "type": "number",
                "description": "The total BTC amount of top 10 transactions (in terms of total BTC sent) flowing out of exchange wallets for every day that the exchange wallets we track have been live on the blockchain."
               },
               "outflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent from an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "outflow_total": 2854.44,
            "outflow_top10": 1939.59,
            "outflow_mean": 10.97860467
           },
           {
            "date": "2026-06-14",
            "outflow_total": 3854.14,
            "outflow_top10": 1221.8,
            "outflow_mean": 4.96028591
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/exchange-flows/transactions-count": {
   "get": {
    "tags": [
     "BTC Exchange Flows"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns the number of transactions flowing in/out of Bitcoin exchanges.\n\n**📖 Data Guide:** [Exchange Transactions Count](/data-guide/exchange/exchange-transactions-count) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetTransactionsCountEF",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_inflow, transactions_count_outflow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_inflow",
               "transactions_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "transactions_count_inflow": {
                "type": "number",
                "description": "The number of transactions sent to the exchange ."
               },
               "transactions_count_outflow": {
                "type": "number",
                "description": "The number of transactions sent from the exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "transactions_count_inflow": 55,
            "transactions_count_outflow": 260
           },
           {
            "date": "2026-06-14",
            "transactions_count_inflow": 104,
            "transactions_count_outflow": 777
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/exchange-flows/addresses-count": {
   "get": {
    "tags": [
     "BTC Exchange Flows"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns the number of addresses involved in inflow/outflow transactions.\n\n**📖 Data Guide:** [Exchange Addresses Count](/data-guide/exchange/exchange-addresses-count) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetAddressesCountEF",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of addresses evoking inflow/outflow transactions to exchange wallets",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_inflow",
               "addresses_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "addresses_count_inflow": {
                "type": "number",
                "description": "The number of addresses evoking inflow transactions to exchange wallets"
               },
               "addresses_count_outflow": {
                "type": "number",
                "description": "The number of addresses evoking outflow transactions from exchange wallets"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "addresses_count_inflow": 43,
            "addresses_count_outflow": 46
           },
           {
            "date": "2026-06-14",
            "addresses_count_inflow": 65,
            "addresses_count_outflow": 177
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/exchange-flows/in-house-flow": {
   "get": {
    "tags": [
     "BTC Exchange Flows"
    ],
    "summary": "In-House Flow",
    "description": "This endpoint returns the in-house flow of BTC within wallets of the same exchange for as far back as we track. The average in-house flow is the average transaction value for transactions flowing within wallets on a given day.",
    "operationId": "BTCgetInHouseFlow",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/exchange-flows/in-house-flow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/exchange-flows/in-house-flow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/exchange-flows/in-house-flow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/exchange-flows/in-house-flow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/exchange-flows/in-house-flow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "flow_total, flow_mean, transactions_count_flow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "flow_total",
               "flow_mean",
               "transactions_count_flow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "flow_total": {
                "type": "number",
                "description": "The total amount of BTC circulated within an exchange."
               },
               "flow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction circulated within an exchange."
               },
               "transactions_count_flow": {
                "type": "number",
                "description": "The number of transactions circulated within an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "flow_total": 6452.42,
            "flow_mean": 24.81698126,
            "transactions_count_flow": 260
           },
           {
            "date": "2026-06-14",
            "flow_total": 9931.17,
            "flow_mean": 12.94806586,
            "transactions_count_flow": 767
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/miner-flows/reserve": {
   "get": {
    "tags": [
     "BTC Miner Flows"
    ],
    "summary": "Reserve",
    "description": "This endpoint returns the full historical on-chain balance of Bitcoin mining pools.",
    "operationId": "BTCgetReserveMF",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/miner-flows/reserve?miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/miner-flows/reserve?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/miner-flows/reserve?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/miner-flows/reserve?miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/miner-flows/reserve?miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of BTC on the given miner on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "reserve",
               "reserve_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "reserve": {
                "type": "number",
                "description": "The amount of BTC on a given mining pool."
               },
               "reserve_usd": {
                "type": "number",
                "description": "The USD value of BTC held by a mining pool."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "reserve": 4407.37,
            "reserve_usd": 288674411.49
           },
           {
            "date": "2026-06-13",
            "reserve": 4407.42,
            "reserve_usd": 283629608.86
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/miner-flows/netflow": {
   "get": {
    "tags": [
     "BTC Miner Flows"
    ],
    "summary": "Netflow",
    "description": "The difference between coins flowing into mining pools and flowing out of mining pools. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.",
    "operationId": "BTCgetMinerNetflow",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/miner-flows/netflow?miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/miner-flows/netflow?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/miner-flows/netflow?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/miner-flows/netflow?miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/miner-flows/netflow?miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "netflow_total",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "netflow_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "netflow_total": {
                "type": "number",
                "description": "The difference between coins flowing into/out of mining pools."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "netflow_total": -0.04463347
           },
           {
            "date": "2026-06-13",
            "netflow_total": -0.82749643
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/miner-flows/inflow": {
   "get": {
    "tags": [
     "BTC Miner Flows"
    ],
    "summary": "Inflow",
    "description": "This endpoint returns the inflow of BTC into mining pool wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into mining pool wallets on a given day.",
    "operationId": "BTCgetInflowMF",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/miner-flows/inflow?miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/miner-flows/inflow?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/miner-flows/inflow?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/miner-flows/inflow?miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/miner-flows/inflow?miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "inflow_total, inflow_top10, inflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "inflow_total",
               "inflow_top10",
               "inflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "inflow_total": {
                "type": "number",
                "description": "The total amount of BTC transferred to the miner."
               },
               "inflow_top10": {
                "type": "number",
                "description": "The total BTC amount of top 10 transactions (in terms of total BTC sent) flowing into miner wallets for every day that the miner wallets we track have been live on the blockchain."
               },
               "inflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transactions sent to a miner."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "inflow_total": 54.84962439,
            "inflow_top10": 54.09589397,
            "inflow_mean": 0.11427005,
            "inflow_mean_ma7": 0.11733894
           },
           {
            "date": "2026-06-13",
            "inflow_total": 61.07903131,
            "inflow_top10": 59.98147718,
            "inflow_mean": 0.11814126,
            "inflow_mean_ma7": 0.12042579
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/miner-flows/outflow": {
   "get": {
    "tags": [
     "BTC Miner Flows"
    ],
    "summary": "Outflow",
    "description": "This endpoint returns the outflow of BTC into mining pool wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing out of mining pool wallets on a given day.\n\n**📖 Data Guide:** [Miner Outflow](/data-guide/miner/miner-outflow) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetOutflowMF",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/miner-flows/outflow?miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/miner-flows/outflow?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/miner-flows/outflow?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/miner-flows/outflow?miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/miner-flows/outflow?miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "outflow_total, outflow_top10, outflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "outflow_total",
               "outflow_top10",
               "outflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "outflow_total": {
                "type": "number",
                "description": "The total amount of BTC transferred from the miner."
               },
               "outflow_top10": {
                "type": "number",
                "description": "The total BTC amount of top 10 transactions (in terms of total BTC sent) flowing out of miner wallets for every day that the miner wallets we track have been live on the blockchain."
               },
               "outflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent from a miner."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "outflow_total": 54.89425786,
            "outflow_top10": 53.70868243,
            "outflow_mean": 0.0082214,
            "outflow_mean_ma7": 0.00790741
           },
           {
            "date": "2026-06-13",
            "outflow_total": 61.90652774,
            "outflow_top10": 60.67254298,
            "outflow_mean": 0.00536312,
            "outflow_mean_ma7": 0.0073261
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/miner-flows/transactions-count": {
   "get": {
    "tags": [
     "BTC Miner Flows"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns the number of transactions flowing in/out of Bitcoin miners.",
    "operationId": "BTCgetTransactionsCountMF",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/miner-flows/transactions-count?miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/miner-flows/transactions-count?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/miner-flows/transactions-count?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/miner-flows/transactions-count?miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/miner-flows/transactions-count?miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_inflow, transactions_count_outflow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_inflow",
               "transactions_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "transactions_count_inflow": {
                "type": "number",
                "description": "The number of transactions sent to the miner."
               },
               "transactions_count_outflow": {
                "type": "number",
                "description": "The number of transactions sent from the miner."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_inflow": 480,
            "transactions_count_outflow": 6677
           },
           {
            "date": "2026-06-13",
            "transactions_count_inflow": 517,
            "transactions_count_outflow": 11543
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/miner-flows/addresses-count": {
   "get": {
    "tags": [
     "BTC Miner Flows"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns the number of addresses involved in inflow/outflow transactions.",
    "operationId": "BTCgetAddressesCountMF",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/miner-flows/addresses-count?miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/miner-flows/addresses-count?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/miner-flows/addresses-count?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/miner-flows/addresses-count?miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/miner-flows/addresses-count?miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of addresses evoking inflow/outflow transactions to miner wallets",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_inflow",
               "addresses_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "addresses_count_inflow": {
                "type": "number",
                "description": "The number of addresses evoking inflow transactions to mining pool wallets"
               },
               "addresses_count_outflow": {
                "type": "number",
                "description": "The number of addresses evoking outflow transactions from mining pool wallets"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_inflow": 358,
            "addresses_count_outflow": 315
           },
           {
            "date": "2026-06-13",
            "addresses_count_inflow": 439,
            "addresses_count_outflow": 398
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/miner-flows/in-house-flow": {
   "get": {
    "tags": [
     "BTC Miner Flows"
    ],
    "summary": "In-House Flow",
    "description": "This endpoint returns the in-house flow of BTC within wallets of the same miner for as far back as we track. The average in-house flow is the average transaction value for transactions flowing within wallets on a given day.",
    "operationId": "BTCgetMinerInHouseFlow",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/miner-flows/in-house-flow?miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/miner-flows/in-house-flow?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/miner-flows/in-house-flow?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/miner-flows/in-house-flow?miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/miner-flows/in-house-flow?miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "flow_total, flow_mean, transactions_count_flow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "flow_total",
               "flow_mean",
               "transactions_count_flow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "flow_total": {
                "type": "number",
                "description": "The total amount of BTC circulated within an miner."
               },
               "flow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction circulated within an miner."
               },
               "transactions_count_flow": {
                "type": "number",
                "description": "The number of transactions circulated within an miner."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "flow_total": 120.65156809,
            "transactions_count_flow": 6597,
            "flow_mean": 0.01828885
           },
           {
            "date": "2026-06-13",
            "flow_total": 127.10674771,
            "transactions_count_flow": 11457,
            "flow_mean": 0.01109424
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/inter-entity-flows/exchange-to-exchange": {
   "get": {
    "tags": [
     "BTC Inter Entity Flows"
    ],
    "summary": "Exchange to Exchange",
    "description": "This endpoint contains metrics related to token flows between exchanges. We provide several metrics, `flow_total`, the total number of tokens transferred from one exchange to another, `flow_mean`, the mean of tokens transferred, and `transactions_count_flow`, the number of transactions between exchanges.\n\n**📖 Data Guide:** [Exchange to Exchange](/data-guide/exchange/exchange-to-exchange) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetExchangeToExchange",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "from_exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows). This should not be same as `from_entity`.",
      "explode": false,
      "in": "query",
      "name": "to_exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "bithumb"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-exchange?from_exchange=binance&to_exchange=bithumb&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-exchange?from_exchange=binance&to_exchange=bithumb&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-exchange?from_exchange=binance&to_exchange=bithumb&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-exchange?from_exchange=binance&to_exchange=bithumb&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-exchange?from_exchange=binance&to_exchange=bithumb&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "from_exchange, to_exchange, flow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "flow_total",
               "flow_mean",
               "transactions_count_flow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "flow_total": {
                "type": "number",
                "description": "The total number of tokens transferred from one exchange to another."
               },
               "flow_mean": {
                "type": "number",
                "description": "The mean of tokens transferred from one exchange to another."
               },
               "transactions_count_flow": {
                "type": "number",
                "description": "The number of transactions from one exchange to another."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "flow_total": 15.024803,
            "flow_mean": 0.60099212,
            "transactions_count_flow": 25
           },
           {
            "date": "2026-06-14",
            "flow_total": 48.936306,
            "flow_mean": 1.6312102,
            "transactions_count_flow": 30
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/inter-entity-flows/miner-to-exchange": {
   "get": {
    "tags": [
     "BTC Inter Entity Flows"
    ],
    "summary": "Miner to Exchange",
    "description": "This endpoint contains metrics related to token flows from mining pools to exchanges. We provide several metrics, `flow_total`, the total number of tokens transferred from a mining pool to an exchange, `flow_mean`, the mean of tokens transferred, and `transactions_count_flow`, the number of transactions from a mining pool to an exchange.\n\n**📖 Data Guide:** [Miner to Exchange](/data-guide/miner/miner-to-exchange) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetMinerToExchange",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "from_miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows). This should not be same as `from_entity`.",
      "explode": false,
      "in": "query",
      "name": "to_exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "bithumb"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-exchange?from_miner=f2pool&to_exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-exchange?from_miner=f2pool&to_exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-exchange?from_miner=f2pool&to_exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-exchange?from_miner=f2pool&to_exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-exchange?from_miner=f2pool&to_exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "from_miner, to_exchange, flow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "flow_total",
               "flow_mean",
               "transactions_count_flow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "flow_total": {
                "type": "number",
                "description": "The total number of tokens transferred from a mining pool to an exchange."
               },
               "flow_mean": {
                "type": "number",
                "description": "The mean of tokens transferred from a mining pool to an exchange."
               },
               "transactions_count_flow": {
                "type": "number",
                "description": "The number of transactions from a mining pool to an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "flow_total": 0,
            "transactions_count_flow": 0,
            "flow_mean": 0
           },
           {
            "date": "2026-06-13",
            "flow_total": 0,
            "transactions_count_flow": 0,
            "flow_mean": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/inter-entity-flows/exchange-to-miner": {
   "get": {
    "tags": [
     "BTC Inter Entity Flows"
    ],
    "summary": "Exchange to Miner",
    "description": "This endpoint contains metrics related to token flows from exchanges to mining pools. We provide several metrics, `flow_total`, the total number of tokens transferred from a mining pool to an exchange, `flow_mean`, the mean of tokens transferred, and `transactions_count_flow`, the number of transactions from an exchange to a mining pool.",
    "operationId": "BTCgetExchangeToMiner",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "from_exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "to_miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-miner?from_exchange=binance&to_miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-miner?from_exchange=binance&to_miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-miner?from_exchange=binance&to_miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-miner?from_exchange=binance&to_miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/inter-entity-flows/exchange-to-miner?from_exchange=binance&to_miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "from_exchange, to_miner, flow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "flow_total",
               "flow_mean",
               "transactions_count_flow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "flow_total": {
                "type": "number",
                "description": "The total number of tokens transferred from an exchange to a mining pool."
               },
               "flow_mean": {
                "type": "number",
                "description": "The mean of tokens transferred from an exchange to a mining pool."
               },
               "transactions_count_flow": {
                "type": "number",
                "description": "The number of transactions from an exchange to a mining pool."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "flow_total": 0.00188,
            "transactions_count_flow": 2,
            "flow_mean": 0.00094
           },
           {
            "date": "2026-06-13",
            "flow_total": 0.14622697,
            "transactions_count_flow": 8,
            "flow_mean": 0.01827837
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/inter-entity-flows/miner-to-miner": {
   "get": {
    "tags": [
     "BTC Inter Entity Flows"
    ],
    "summary": "Miner to Miner",
    "description": "This endpoint contains metrics related to token flows between mining pools. We provide several metrics, `flow_total`, the total number of tokens transferred from one mining pool to another, `flow_mean`, the mean of tokens transferred, and `transactions_count_flow`, the number of transactions between mining pools.",
    "operationId": "BTCgetMinerToMiner",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "from_miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "to_miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-miner?from_miner=f2pool&to_miner=antpool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-miner?from_miner=f2pool&to_miner=antpool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-miner?from_miner=f2pool&to_miner=antpool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-miner?from_miner=f2pool&to_miner=antpool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/inter-entity-flows/miner-to-miner?from_miner=f2pool&to_miner=antpool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "from_miner, to_miner, flow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "flow_total",
               "flow_mean",
               "transactions_count_flow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "flow_total": {
                "type": "number",
                "description": "The total number of tokens transferred from one mining pool to another."
               },
               "flow_mean": {
                "type": "number",
                "description": "The mean of tokens transferred from one mining pool to another."
               },
               "transactions_count_flow": {
                "type": "number",
                "description": "The number of transactions from one mining pool to another."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "flow_total": 0.01240324,
            "transactions_count_flow": 1,
            "flow_mean": 0.01240324
           },
           {
            "date": "2026-06-13",
            "flow_total": 0.01588166,
            "transactions_count_flow": 1,
            "flow_mean": 0.01588166
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/supply": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Supply",
    "description": "This endpoint returns metrics related to bitcoin supply, i.e. the amount of bitcoin in existence. We currently provide two metrics, `supply_total` , the total amount of bitcoins in existence (sum of all bitcoins issued by the coinbase reward), and `supply_new`, the amount of newly issued tokens in a given window.",
    "operationId": "getSupply",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/supply?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/supply?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/supply?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/supply?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/supply?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "supply_total, supply_new",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_total",
               "supply_new"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "supply_total": {
                "type": "number",
                "description": "The total amount of BTC in existence."
               },
               "supply_new": {
                "type": "number",
                "description": "The sum of newly issued tokens in that window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "supply_new": 456.25,
            "supply_total": 20042821.04
           },
           {
            "date": "2026-06-13",
            "supply_new": 387.5,
            "supply_total": 20042364.79
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/velocity": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Velocity",
    "description": "This endpoint returns metrics related to the velocity of bitcoin. Bitcoin's velocity is calculated by dividing the trailing 1 year estimated transaction volume(the cumulated sum of transferred tokens) by current supply. Velocity is a metric that explains how actively is money circulating in the market.",
    "operationId": "getVelocity",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/velocity?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/velocity?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/velocity?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/velocity?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/velocity?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Estimated transaction volume in the trailing 1 year divided by current total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "velocity_supply_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "velocity_supply_total": {
                "type": "number",
                "description": "Estimated transaction volume in the trailing 1 year divided by current total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "velocity_supply_total": 13.303226
           },
           {
            "date": "2026-06-13",
            "velocity_supply_total": 13.299656
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/transactions-count": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns metrics related to the number of transactions. We provide several metrics, `transactions_count_total`, the total number of transactions, and `transactions_count_mean`, the mean number of transactions.",
    "operationId": "getTransactionsCount",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/transactions-count?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/transactions-count?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/transactions-count?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/transactions-count?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/transactions-count?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_total, transactions_count_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_total",
               "transactions_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "transactions_count_total": {
                "type": "number",
                "description": "Total number of transactions whether they execute or not, and whether they result in the transfer of tokens or not."
               },
               "transactions_count_mean": {
                "type": "number",
                "description": "The mean of number transactions per block. For window=block, this value will be same as transactions_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_total": 726374,
            "transactions_count_mean": 4975.16
           },
           {
            "date": "2026-06-13",
            "transactions_count_total": 550172,
            "transactions_count_mean": 4436.87
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/addresses-count": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns metrics relating to the number of used bitcoin addresses. We provide several metrics, `addresses_count_active`, the total number of unique addresses that were active (either sender or receiver) on the blockchain, `addresses_count_sender`, the number of addresses that were active as a sender, and `addresses_count_receiver`, the number of addresses that were active as a receiver.",
    "operationId": "getAddressesCount",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/addresses-count?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/addresses-count?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/addresses-count?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/addresses-count?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/addresses-count?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "addresses_count_active, addresses_count_sender, addresses_count_receiver,",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_active",
               "addresses_count_sender",
               "addresses_count_receiver"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "addresses_count_active": {
                "type": "number",
                "description": "The total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window."
               },
               "addresses_count_sender": {
                "type": "number",
                "description": "The number of addresses that were active as a sender."
               },
               "addresses_count_receiver": {
                "type": "number",
                "description": "The number of addresses that were active as a receiver."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_active": 530599,
            "addresses_count_receiver": 400724,
            "addresses_count_sender": 373693
           },
           {
            "date": "2026-06-13",
            "addresses_count_active": 550172,
            "addresses_count_receiver": 423653,
            "addresses_count_sender": 381961
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/tokens-transferred": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Tokens Transferred",
    "description": "This endpoint returns metrics related to the number of tokens transferred, i.e transaction volume. We provide several metrics, `tokens_transferred_total`, the total number of transferred tokens, `tokens_transferred_mean`, the mean of number of transferred tokens per transaction, and `tokens_transferred_median`, the median of tokens transferred per transaction.",
    "operationId": "getTokensTransferred",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/tokens-transferred?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/tokens-transferred?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/tokens-transferred?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/tokens-transferred?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/tokens-transferred?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean, tokens_transferred_median",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean of tokens transferred per transaction."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median of tokens transferred per transaction."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 434852.64,
            "tokens_transferred_mean": 0.59866218,
            "tokens_transferred_median": 0.000777
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 451153.54,
            "tokens_transferred_mean": 0.82002272,
            "tokens_transferred_median": 0.001035
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/block-bytes": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Block Bytes",
    "operationId": "getBlockBytes",
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/block-bytes?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/block-bytes?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/block-bytes?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/block-bytes?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/block-bytes?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "description": "The mean size(in bytes) of all blocks generated.",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "responses": {
     "200": {
      "description": "The mean size(in bytes) of all blocks generated.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "data",
            "window"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "block_bytes"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "block_bytes": {
                "type": "integer",
                "description": "The mean size(in bytes) of all blocks generated"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "block_bytes": 1589650.31
           },
           {
            "date": "2026-06-13",
            "block_bytes": 1579676.05
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/block-count": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Block Count",
    "description": "The number of blocks generated in a given window.",
    "operationId": "getBlockCount",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/block-count?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/block-count?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/block-count?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/block-count?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/block-count?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of blocks generated in a given window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "data",
            "window"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "block_count"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "block_count": {
                "type": "integer",
                "description": "The number of blocks generated in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "block_count": 146
           },
           {
            "date": "2026-06-13",
            "block_count": 124
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/block-interval": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Block Interval",
    "description": "The average time between blocks generated displayed in seconds.",
    "operationId": "getBlockInterval",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/block-interval?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/block-interval?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/block-interval?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/block-interval?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/block-interval?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The average time between  blocks generated in seconds.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "block_interval"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "block_interval": {
                "type": "integer",
                "description": "The average time between blocks generated in seconds."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "block_interval": 588.45890411
           },
           {
            "date": "2026-06-13",
            "block_interval": 697.24193548
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/utxo-count": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "UTXO Count",
    "description": "The number of total number of unspent transaction outputs existing at the specified point.",
    "operationId": "getUTXOCount",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/utxo-count?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/utxo-count?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/utxo-count?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/utxo-count?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/utxo-count?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Number of total number of unspent transaction outputs at a given period.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "utxo_count"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "utxo_count": {
                "type": "integer",
                "description": "Number of unspent transaction outputs."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "utxo_count": 165793937
           },
           {
            "date": "2026-06-13",
            "utxo_count": 165787206
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/fees": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Fees",
    "description": "This endpoint returns the statistics related to fees that are paid to bitcoin miners. In general, fees are calculated by subtracting the newly issued bitcoin from the total block reward of each blocks. We provide three statistics, `fees_total`, the sum of all fees, `fees_block_mean`, the average fee per block, and `fees_reward_percent`, the percentage of fees relative to the total block reward. Additionally, these can be viewed in terms of USD.",
    "operationId": "getFees",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/fees?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/fees?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/fees?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/fees?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/fees?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "fees_total, fees_total_usd, fees_block_mean, fees_block_mean_usd, fees_reward_percent.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_block_mean",
               "fees_block_mean_usd",
               "fees_total",
               "fees_total_usd",
               "fees_reward_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "fees_block_mean": {
                "type": "number",
                "description": "The average fee per block."
               },
               "fees_block_mean_usd": {
                "type": "number",
                "description": "The average fee per block, calculated in USD."
               },
               "fees_total": {
                "type": "number",
                "description": "The sum of all fees that are paid to bitcoin miners."
               },
               "fees_total_usd": {
                "type": "number",
                "description": "The sum of all fees that are paid to bitcoin miners, calculated in USD."
               },
               "fees_reward_percent": {
                "type": "number",
                "description": "The percentage of fee in total block reward. Values are between 0 and 1."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_block_mean": 0.01819619,
            "fees_block_mean_usd": 1171.29,
            "fees_reward_percent": 0.00578907,
            "fees_total": 2.65664341,
            "fees_total_usd": 171008.22
           },
           {
            "date": "2026-06-13",
            "fees_block_mean": 0.02751413,
            "fees_block_mean_usd": 1759.71,
            "fees_reward_percent": 0.00872768,
            "fees_total": 3.41175237,
            "fees_total_usd": 218203.51
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/fees-transaction": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Fees Transaction",
    "description": "This endpoint returns the statistics related to fees per transaction that are paid to bitcoin miners. In general, fees are calculated by subtracting the newly issued bitcoin from the total block reward of each blocks, and this is divided by the number of transactions to calculate the average fee per transaction in each block. We provide two statistics, `fees_transaction_mean`, the average fee per transaction, `fees_transaction_median,` the median fee per transaction. Additionally, these values can be calculated in USD.",
    "operationId": "getFeesTransaction",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/fees-transaction?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/fees-transaction?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/fees-transaction?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/fees-transaction?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/fees-transaction?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "fees_transaction_mean, fees_transaction_mean_usd, fees_transaction_median, fees_transaction_median_usd",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_transaction_mean",
               "fees_transaction_mean_usd",
               "fees_transaction_median",
               "fees_transaction_median_usd",
               "fees_reward_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "fees_transaction_mean": {
                "type": "number",
                "description": "The average fee per transaction."
               },
               "fees_transaction_mean_usd": {
                "type": "number",
                "description": "The average fee per transaction, calculated in USD."
               },
               "fees_transaction_median": {
                "type": "number",
                "description": "The median fee per transaction."
               },
               "fees_transaction_median_usd": {
                "type": "number",
                "description": "The median fee per transaction, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_transaction_mean": 0.00000366,
            "fees_transaction_mean_usd": 0.23542723,
            "fees_transaction_median": 8.5e-7,
            "fees_transaction_median_usd": 0.05556587
           },
           {
            "date": "2026-06-13",
            "fees_transaction_mean": 0.0000062,
            "fees_transaction_mean_usd": 0.39660962,
            "fees_transaction_median": 0.00000169,
            "fees_transaction_median_usd": 0.108371
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/blockreward": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Blockreward",
    "description": "The sum of block rewards (including mining or staking rewards and transaction fees). We also provide this value in usd.",
    "operationId": "getBlockReward",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/blockreward?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/blockreward?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/blockreward?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/blockreward?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/blockreward?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The sum of block rewards (including mining or staking rewards and transaction fees). We also provide this value in usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "blockreward",
               "blockreward_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "blockreward": {
                "type": "number",
                "description": "The sum of block rewards (including mining or staking rewards and transaction fees)."
               },
               "blockreward_usd": {
                "type": "number",
                "description": "The sum of block rewards (including mining or staking rewards and transaction fees), calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "blockreward": 458.90664341,
            "blockreward_usd": 29534127.83
           },
           {
            "date": "2026-06-13",
            "blockreward": 390.91175237,
            "blockreward_usd": 24978636.2
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/difficulty": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Difficulty",
    "description": "The mean difficulty of mining a new block.",
    "operationId": "getDifficulty",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/difficulty?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/difficulty?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/difficulty?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/difficulty?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/difficulty?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The mean difficulty of mining a new block.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "difficulty"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "difficulty": {
                "type": "number",
                "description": "The mean difficulty of mining a new block."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "difficulty": 125124954924434.48
           },
           {
            "date": "2026-06-13",
            "difficulty": 138955357012247.3
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-data/hashrate": {
   "get": {
    "tags": [
     "BTC Network Data"
    ],
    "summary": "Hashrate",
    "description": "The mean speed at which miners in the network are solving hash problems. It is displayed as hashes (Gigabytes) per second.",
    "operationId": "getHashrate",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-data/hashrate?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-data/hashrate?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-data/hashrate?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-data/hashrate?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-data/hashrate?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The mean speed at which hash problems are being solved across all miners in the network. It is displayed as hashes(Bytes) per second.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "hashrate"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "hashrate": {
                "type": "number",
                "description": "The mean of hashes that miners calculates per second across all miners in the network. (Bytes/Sec)"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "hashrate": 906725182399.03
           },
           {
            "date": "2026-06-13",
            "hashrate": 856531024681.47
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-data/price-ohlcv": {
   "get": {
    "tags": [
     "BTC Market Data"
    ],
    "summary": "Price OHLCV",
    "description": "This endpoint returns metrics related to BTC price. \nWe provide two types of price, CryptoQuant's BTC Index Price and USD or USDT price of BTC of global exchanges.\n\nPrice OHLCV data consists of five metrics. \n`open`, the opening price at the beginning of the window, `close`, USD closing price at the end of the window, \n`high`, the highest USD price in a given window, `low`, the lowest USD price in a given window, \nand `volume`, the total volume traded in a given window. \n\nAt this endpoint, metrics are calculated by Minute, Hour and Day. \n\nBTC Index Price is calculated by taking VWAP(Volume Weighted Average Price) of BTC price data aggregated from all exchanges we provide. The exchanges we provide are as follows. \n\n<br/>\n\n### Supported Exchanges By Market\n\n| Name | Market  |    Supported Exchanges     |\n|--------|---------|----------------------------|\n| Spot   | `spot`  | All Exchange*, Binance, Binance US, Bitfinex, Bittrex, Coinbase Advanced, FTX**, Gemini, HTX Global, Kraken, OKX |\n| Perpetual   | `perpetual`  | All Exchange*, Binance, Bitmex, Bybit, Deribit, FTX**, HTX Global, OKX |\n\n> (*) Default exchange <br/>\n> (**) Use in cautions due to the deprecation (no data update)\n\nIn order to get USD or USDT price of BTC of specific exchange from above (eg. `btcusdt` pair of `binance`), \nyou must specify `market`, `exchange` and `symbol` of BTC pair.  \n\nFor `volume` metric, the unit of volume could be USD, USDT or BTC. \nThis is because exchanges have their own price data policy. All Exchange's `volume` is in BTC and available since the earliest time of exchanges. \nPlease refer to volume unit of each exchange from below table.  \n\n<br/>\n\n### Supported Pairs By Exchange\n\n#### ◦ Spot\n| Name           |   Exchange       | Symbol                      | Volume Unit  | Available Since   |\n|----------------|------------------|-----------------------------|--------------|-------------------------------|\n| All Exchange   | `all_exchange`   |  `btc_usd`*                  |    BTC       |  2009-01-03 18:15:00          |\n| Binance        | `binance`        |  `btc_usdt`*                 |    BTC       | 2017-08-17 04:00:00           |\n| Binance US     | `binance_us`     |  `btc_usd`* <br/> `btc_usdt`  |    BTC       | 2019-09-17 10:17:00 <br/> 2019-09-23 08:34:00 |\n| Bitfinex       | `bitfinex`       |  `btc_usd`* <br/> `btc_usdt`  |    BTC       | 2013-04-01 00:07:00 <br/> 2019-03-11 10:05:00 |\n| Bittrex        | `bittrex`        |  `btc_usd`* <br/> `btc_usdt`  |    USD <br/> USDT | 2018-05-31 16:26:00 <br/> 2015-12-12 14:59:00 |\n| Coinbase Advanced   | `coinbase_advanced`   |  `btc_usd`*                  |    BTC       | 2015-07-20 21:37:00  \n| FTX**            | `ftx`            |  `btc_usd`* <br/> `btc_usdt`  |    USD <br/> USDT | 2019-07-21 13:11:00 <br/> 2020-03-28 14:40:00 |\n| Gemini         | `gemini`         |  `btc_usd`*                  |    BTC       | 2019-08-30 00:00:00           |\n| HTX Global   | `htx_global`   |  `btc_usdt`*                 |    BTC       | 2019-11-19 00:00:00           |\n| Kraken         | `kraken`         |  `btc_usd`* <br/> `btc_usdt`  |    BTC       | 2013-10-06 21:34:00 <br/> 2019-12-19 18:06:00 |\n| OKX            | `okx`           |  `btc_usdt`*                 |    BTC       | 2019-10-01 00:00:00           |\n\n#### ◦ Perpetual\n|    Exchange    | Exchange Symbol  |     Pair Symbol               |    Volume         |    Historical Starting Point   |\n|----------------|------------------|-------------------------------|-------------------|--------------------------------|\n| All Exchange   | `all_exchange`   |  `btc_usd`*                   |    BTC            |  The earliest time in the exchanges below.         |\n| Binance        | `binance`        |  `btc_usd`* <br/> `btc_usdt`  |    Cont <br/> BTC | 2020-08-11 07:02:00 <br/> 2019-09-08 17:57:00 |\n| Bitmex         | `bitmex`         |  `btc_usd`*                   |    USD            | 2015-09-25 12:34:00            |\n| Bybit          | `bybit`          |  `btc_usd`* <br/> `btc_usdt`  |    USD  <br/> BTC | 2018-11-14 16:00:00 <br/> 2020-03-25 10:36:00 |\n| Deribit        | `deribit`        |  `btc_usd`*                   |    USD            | 2018-08-14 10:34:00  |\n| FTX**            | `ftx`            |  `btc_usd`*                   |    USD            | 2019-07-20 12:35:00 |\n| HTX Global   | `htx_global`   |  `btc_usd`* <br/> `btc_usdt`  |    Cont <br/> BTC | 2020-03-25 09:45:00 <br/> 2020-10-21 09:08:00 |\n| OKX            | `okx`           |  `btc_usd`* <br/> `btc_usdt`  |    Cont <br/> BTC | 2019-03-30 00:00:00 <br/> 2019-12-25 00:00:00 |\n\n> (*) Default exchange <br/>\n> (**) Use in cautions due to the deprecation (no data update)\n\n> We calculate the OHLCV data of a day from the beginning of UTC 00:00:00. \n> However, the OHLCV data in official sites of HTX and OKX are calculated from the beginning of UTC 16:00:00. \n> Thus, be aware that there may be some intended discrepancy between those.\n\n<br/>\n\n### Supported Windows By Market\n\n|   Market  |   Supported Windows           |\n|-----------|-------------------------------|\n| Spot      | `min`, `hour`, `day*`         |\n| Perpetual | `min`, `hour`, `day*`         |\n\n> (*) Default exchange",
    "operationId": "getBTCPriceOHLCV",
    "parameters": [
     {
      "description": "A market type from the table that we support. [See here](#operation/getBTCPriceOHLCV)",
      "explode": false,
      "in": "query",
      "name": "market",
      "required": false,
      "schema": {
       "type": "string",
       "default": "spot"
      },
      "style": "form",
      "example": "spot"
     },
     {
      "description": "A exchange from the table that we support. [See here](#operation/getBTCPriceOHLCV).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_exchange"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "A BTC pair symbol from the table that we support. [See here](#operation/getBTCPriceOHLCV)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "btc_usd"
     },
     {
      "description": "A window from the table that we support. [See here](#operation/getBTCPriceOHLCV)",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-data/price-ohlcv?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-data/price-ohlcv?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-data/price-ohlcv?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-data/price-ohlcv?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-data/price-ohlcv?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Price OHLCV Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open",
               "high",
               "low",
               "close",
               "volume"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "open": {
                "type": "number",
                "description": "opening price at the beginning of the window."
               },
               "high": {
                "type": "number",
                "description": "opening price at the end of the window."
               },
               "low": {
                "type": "number",
                "description": "The highest price in a given window."
               },
               "close": {
                "type": "number",
                "description": "The lowest price in a given window."
               },
               "volume": {
                "type": "number",
                "description": "The total traded amount in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open": 64393.87,
            "high": 65753.52,
            "low": 63628.02,
            "close": 65704.89,
            "volume": 25241.79
           },
           {
            "date": "2026-06-13",
            "open": 63541.16,
            "high": 64723.5,
            "low": 63393.29,
            "close": 64377.53,
            "volume": 18332.87
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-data/open-interest": {
   "get": {
    "tags": [
     "BTC Market Data"
    ],
    "summary": "Open Interest",
    "description": "This endpoint returns BTC Perpetual Open Interest from derivative exchanges. Supported exchanges for Open Interest are below. Note we unify the unit of return value to USD for each exchange where its contract specification may vary.\n\n| Name           |   Exchange     | Symbol |  Available Since   |\n|----------------|--------------|-------------|-----------------------------|\n| All Exchanges  |   `all_exchange` | `all_symbol`   | The earliest time in the exchanges below. |\n| Binance        |   `binance`  |    `all_symbol` <br/> `btc_busd` <br/> `btc_usd` <br/> `btc_usdt`  | The earliest time in the symbols. <br/> 2021-01-12 00:00:00 <br/> 2020-08-11 00:00:00 <br/> 2020-03-13 02:13:00      |\n| Bitfinex       |   `bitfinex` |    `all_symbol` <br/> `btc_usdt`  | The earliest time in the symbols. <br/> 2020-06-01 00:00:00  |\n| Bitmex         |   `bitmex`   |    `all_symbol` <br/> `btc_usd`  | The earliest time in the symbols. <br/> 2019-03-30 00:00:00  |\n| Bybit          |   `bybit`    |    `all_symbol` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2019-11-07 00:00:00 <br/> 2020-05-28 00:00:00 |\n| Deribit        |   `deribit`  |    `all_symbol` <br/> `btc_usd`  | The earliest time in the symbols. <br/> 2019-03-30 00:00:00        |\n| FTX**            |   `ftx`      |    `all_symbol` <br/> `btc_usd` | The earliest time in the symbols. <br/> 2020-05-13 00:00:00  |\n| Gate.io        |   `gate_io`      | `all_symbol` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2020-07-01 00:00:00 <br/> 2020-07-01 00:00:00 |\n| HTX Global   |   `htx_global` | `all_symbol` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2020-06-23 00:00:00 <br/> 2021-08-26 04:00:00 |\n| Kraken         |   `kraken`       | `all_symbol` <br/> `btc_usd` | The earliest time in the symbols. <br/> 2019-03-30 00:00:00  |\n| OKX            |   `okx`         | `all_symbol` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2019-09-05 23:59:00 <br/> 2020-01-01 00:00:00 |\n\n> (**) Use in cautions due to the deprecation (no data update)\n\n**📖 Data Guide:** [Open Interest](/data-guide/market/open-interest) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetOpenInterest",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/BTCgetOpenInterest).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "bitmex"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-data/open-interest?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-data/open-interest?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-data/open-interest?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-data/open-interest?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-data/open-interest?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Open Interest in USD",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open_interest"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "open_interest": {
                "type": "string",
                "description": "The amount of open interest in the given period and exchange. The standard unit can differ from each exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open_interest": 106894000
           },
           {
            "date": "2026-06-13",
            "open_interest": 117418600
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-data/funding-rates": {
   "get": {
    "tags": [
     "BTC Market Data"
    ],
    "summary": "Funding Rates",
    "description": "Funding rates represents traders' sentiments of which position they bet on in perpetual swaps market. Positive funding rates implies that many traders are bullish and long traders pay funding to short traders. Negative funding rates implies many traders are bearish and short traders pay funding to long traders.\n\n| Name           |   Exchange     | Symbol |  Available Since   |\n|----------------|--------------|----|-------------------------|\n| All Exchanges  |   `all_exchange` | | The earliest time in the exchanges below. |\n| Binance        |   `binance`  | BTC-USDT  | 2019-09-10 00:00:00        |\n| Bybit          |   `bybit`    | BTC-USD | 2019-12-01 00:00:00        |\n| Bitmex         |   `bitmex`   | BTC-USD | 2016-05-14 04:00:00  |\n| Deribit        |   `deribit`  | BTC-PERPETUAL | 2019-03-30 00:00:00        |\n| HTX Global   |   `htx_global` | BTC-USD  | 2020-03-25 04:00:00       |\n| OKX            |   `okx`     | BTC-USD | 2019-04-01 00:00:00        |\n\n**📖 Data Guide:** [Funding Rates](/data-guide/market/funding-rates) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetFundingRates",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/getFundingRates).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "bitmex"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Funding Rates in percentage",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "funding_rates"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "funding_rates": {
                "type": "number",
                "description": "Funding rates in the given period and exchange. The standard unit is percentage."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "funding_rates": -0.00849625
           },
           {
            "date": "2026-06-13",
            "funding_rates": -0.00332229
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-data/taker-buy-sell-stats": {
   "get": {
    "tags": [
     "BTC Market Data"
    ],
    "summary": "Taker Buy Sell Stats",
    "description": "Taker Buy/Sell Stats represent takers' sentiment of which position they are taking in the market. This metric is calculated with perpetual swap trades in each exchange.\n`taker_buy_volume` is volume that takers buy.\n`taker_sell_volume` is volume that takers sell.\n`taker_total_volume` is the sum of `taker_buy_volume` and `taker_sell_volume`.\n`taker_buy_ratio` is the ratio of `taker_buy_volume` divided by `taker_total_volume`.\n`taker_sell_ratio` is the ratio of `taker_sell_volume` divided by `taker_total_volume`.\n`taker_buy_sell_ratio` is the ratio of `taker_buy_volume` divided by `taker_sell_volume`.\nNote we unify the unit of return value to USD for each exchange where its contract specification may vary.\n\n| Name           |   Exchange     | Symbol |  Available Since   |\n|----------------|--------------|------|-----------------------------|\n| All Exchanges  |   `all_exchange` | | The earliest time in the exchanges below. |\n| Binance        |   `binance`  | BTC-USDT | 2019-09-08 17:57:00        |\n| Bybit          |   `bybit`    | BTC-USD | 2019-11-07 00:00:00        |\n| Bitmex         |   `bitmex`   | BTC-USD | 2015-09-25 12:34:00  |\n| Deribit        |   `deribit`  | BTC-PERPETUAL | 2019-03-30 00:00:00       |\n| HTX Global   |   `htx_global` | BTC-USD  | 2020-03-28 00:00:00       |\n| OKX           |   `okx`     | BTC-USD | 2019-03-30 00:00:00        |\n\n**📖 Data Guide:** [Taker Buy Sell Volume/Ratio](/data-guide/market/taker-buy-sell-volume-ratio) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetTakerBuySellStats",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/getLongShortStats).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "bitmex"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Taker Buy, Sell volume and ratio",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "taker_buy_volume",
               "taker_sell_volume",
               "taker_buy_ratio",
               "taker_sell_ratio",
               "taker_buy_sell_ratio"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "taker_buy_volume": {
                "type": "number",
                "description": "Volume that takers buy in the given period and exchange."
               },
               "taker_sell_volume": {
                "type": "number",
                "description": "Volume that takers sell in the given period and exchange."
               },
               "taker_buy_ratio": {
                "type": "number",
                "description": "The ratio of taker buy volume to taker total volume in the given period and exchange. Taker total volume is sum of taker buy and sell volume."
               },
               "taker_sell_ratio": {
                "type": "number",
                "description": "The ratio of taker sell volume to taker total volume in the given period and exchange. Taker total volume is sum of taker buy and sell volume."
               },
               "taker_buy_sell_ratio": {
                "type": "number",
                "description": "The ratio fo taker buy volume to taker sell volume in the given period and exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "taker_buy_volume": 78500800,
            "taker_sell_volume": 73270100,
            "taker_buy_ratio": 0.51723222,
            "taker_sell_ratio": 0.48276778,
            "taker_buy_sell_ratio": 1.07138928
           },
           {
            "date": "2026-06-13",
            "taker_buy_volume": 72091500,
            "taker_sell_volume": 67583000,
            "taker_buy_ratio": 0.51613931,
            "taker_sell_ratio": 0.48386069,
            "taker_buy_sell_ratio": 1.06671056
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-data/liquidations": {
   "get": {
    "tags": [
     "BTC Market Data"
    ],
    "summary": "Liquidations",
    "description": "Liquidations are sum of forced market orders to exit leveraged positions caused by price volatility. Liquidations indicate current price volatility and traders' sentiment which side they had been betting.\nNote that Binance's liquidation data collection policy has changed since [2021-04-27](https://binance-docs.github.io/apidocs/futures/en/#change-log), which makes the distribution of the data has changed after that.\n\n| Name           |   Exchange     |    Symbol    |   Available Since           |\n|----------------|----------------|--------------|-----------------------------|\n| All Exchanges  | `all_exchange` | `all_symbol` | The earliest time in the exchanges below. |\n| Binance        | `binance`      | `all_symbol` <br/> `btc_busd` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2019-11-20 00:00:00 <br/> 2020-08-14 00:00:00 <br/> 2021-01-15 00:00:00 |\n| Bitfinex       | `bitfinex`     | `all_symbol` <br/> `btc_usdt`| The earliest time in the symbols. <br/> 2019-09-18 00:00:00  |\n| Bitmex         | `bitmex`       | `all_symbol` <br/> `btc_usd` | The earliest time in the symbols. <br/> 2019-04-02 00:00:00 |\n| Bybit          | `bybit`        | `all_symbol` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2020-12-20 00:00:00 <br/> 2020-12-18 00:00:00 |\n| Deribit        | `deribit`      | `all_symbol` <br/> `btc_usd` | The earliest time in the symbols. <br/> 2019-05-25 00:00:00 |\n| FTX**            | `ftx`          | `all_symbol` <br/> `btc_usd` | The earliest time in the symbols. <br/> 2019-08-04 00:00:00 |\n| Gate.io        | `gate_io`      | `all_symbol` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2018-12-20 16:00:00 <br/> 2019-11-18 17:00:00 |\n| HTX Global   | `htx_global` | `all_symbol` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2020-06-26 00:00:00 <br/> 2021-09-23 12:00:00 |\n| OKX            | `okx`         | `all_symbol` <br/> `btc_usd` <br/> `btc_usdt` | The earliest time in the symbols. <br/> 2020-12-20 00:00:00 <br/> 2020-12-17 00:00:00 |\n\n> (**) Use in cautions due to the deprecation (no data update)",
    "operationId": "getLiquidations",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/getLiquidations).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "deribit"
     },
     {
      "description": "A BTC pair symbol from the table that we support. [See here](#operation/getLiquidations)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_symbol"
      },
      "style": "form",
      "example": "btc_usd"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-data/liquidations?window=day&from=20191001&exchange=deribit\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-data/liquidations?window=day&from=20191001&exchange=deribit\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-data/liquidations?window=day&from=20191001&exchange=deribit\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-data/liquidations?window=day&from=20191001&exchange=deribit\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-data/liquidations?window=day&from=20191001&exchange=deribit\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Amount of long/short liquidations orders",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "long_liquidations",
               "short_liquidations",
               "long_liquidations_usd",
               "short_liquidations_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "long_liquidations": {
                "type": "number",
                "description": "Amount of liquidated orders in long positions."
               },
               "short_liquidations": {
                "type": "number",
                "description": "Amount of liquidated orders in short positions."
               },
               "long_liquidations_usd": {
                "type": "number",
                "description": "Amount of liquidated orders in long positions in USD."
               },
               "short_liquidations_usd": {
                "type": "number",
                "description": "Amount of liquidated orders in short positions in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "long_liquidations": 0,
            "short_liquidations": 0,
            "long_liquidations_usd": 0,
            "short_liquidations_usd": 0
           },
           {
            "date": "2026-06-13",
            "long_liquidations": 0,
            "short_liquidations": 0,
            "long_liquidations_usd": 0,
            "short_liquidations_usd": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-data/capitalization": {
   "get": {
    "tags": [
     "BTC Market Data"
    ],
    "summary": "Capitalization",
    "description": "This endpoint returns metrics related to market capitalization. First, we provide `market_cap`, which is total market capitalization of BTC, calculated by multiplying the total supply with its USD price. Moreover, we provide several adjusted capitalization metrics which are used for further fundamental analysis. `realized_cap` is the sum of each UTXO * last movement price. Since cryptocurrencies can be lost, unclaimed, or unreachable through various bugs, `realized_cap` is introduced to discount those coins which have remained unmoved for a long period. It is one way to attempt to measure the value of Bitcoin. This can be described as an on-chain version of volume weighted average price(VWAP). `average_cap` is forever moving average, calculated by dividing the cumulated sum of daily market cap with the age of market. Instead of using fixed time for calculating the moving average (e.g. 50 days, 100days ...), this serves as the true mean.  Both `realized_cap` and `average_cap` are used to calculate `delta_cap` (`realized_cap`-`average_cap`). `delta_cap` is often used to spot market bottoms. Moreover, by analyzing the movement of `delta_cap` which oscillates between `realized_cap` and `average_cap`, we could notice that market tops are reached when `delta_cap` is near `realized_cap`(in a log scaled chart). Another metric that can be used to spot market bottoms is `thermo_cap` which is the weighted cumulative sum of the mined cryptocurrency price. This metric provides the total amount of funds in the blockchain network and also helps to evaluate whether `market_cap` is overvalued or not.  \n__[Go to Data Guide‣](https://userguide.cryptoquant.com/cryptoquant-metrics/market/capitalization-models)__\n\n**📖 Data Guide:** [Capitalization models](/data-guide/market/capitalization-models) — definition, interpretation, and chart examples.",
    "operationId": "getCapitalization",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-data/capitalization?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-data/capitalization?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-data/capitalization?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-data/capitalization?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-data/capitalization?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "market_cap, realized_cap, average_cap, delta_cap, thermo_cap",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "market_cap",
               "realized_cap",
               "average_cap",
               "delta_cap",
               "thermo_cap"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "market_cap": {
                "type": "number",
                "description": "Market capitalization of BTC, calculated by total_supply * price_usd_close."
               },
               "realized_cap": {
                "type": "number",
                "description": "The sum of all UTXOs multiplied by the price they last moved."
               },
               "average_cap": {
                "type": "number",
                "description": "Forever moving average, calculated by dividing the cumulated sum of daily market cap with the age of market."
               },
               "delta_cap": {
                "type": "number",
                "description": "realized_cap minus average_cap."
               },
               "thermo_cap": {
                "type": "number",
                "description": "The weighted cumulative sum of the mined cryptocurrency price."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "market_cap": 1316911391763.75,
            "realized_cap": 1072413814088.69,
            "average_cap": 375045696010.16,
            "delta_cap": 697368118078.53,
            "thermo_cap": 95212452398.03
           },
           {
            "date": "2026-06-13",
            "market_cap": 1290277923648.61,
            "realized_cap": 1072353807625.96,
            "average_cap": 374897859611.52,
            "delta_cap": 697455948014.44,
            "thermo_cap": 95182928950.38
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-data/coinbase-premium-index": {
   "get": {
    "tags": [
     "BTC Market Data"
    ],
    "summary": "Coinbase Premium Index",
    "description": "Coinbase Premium Index is calculated as percent difference from Binance price(BTCUSDT) to Coinbase price(BTCUSD). Coinbase Premium Gap is calculated as gap between Coinbase price(BTCUSD) and Binance price(BTCUSDT). The higher the premium, the stronger the spot buying pressure from Coinbase.\n\n**📖 Data Guide:** [Coinbase Premium](/data-guide/fund-premium/coinbase-premium) — definition, interpretation, and chart examples.",
    "operationId": "getBTCCoinbasePremiumIndex",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Coinbase Premium Index in percentage and Coinbase Premium Gap",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "coinbase_premium_gap",
               "coinbase_premium_index"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=min or window=hour is used."
               },
               "coinbase_premium_gap": {
                "type": "number",
                "description": "The gap between Coinbase Advanced price(USD pair) and Binance price(USDT pair)."
               },
               "coinbase_premium_index": {
                "type": "number",
                "description": "The percent difference from Binance price(BTCUSDT) to Coinbase price(BTCUSD)."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "coinbase_premium_gap": -39.83,
            "coinbase_premium_index": -0.06058122,
            "coinbase_premium_gap_usdt_adjusted": 6.8499795,
            "coinbase_premium_index_usdt_adjusted": 0.01041138
           },
           {
            "date": "2026-06-13",
            "coinbase_premium_gap": -28.02,
            "coinbase_premium_index": -0.04347016,
            "coinbase_premium_gap_usdt_adjusted": 57.22636281,
            "coinbase_premium_index_usdt_adjusted": 0.08866343
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/fund-data/market-price-usd": {
   "get": {
    "tags": [
     "BTC Fund Data"
    ],
    "summary": "Market Price USD",
    "description": "The price of certain symbol (e.g. gbtc) managed by each fund (e.g. Grayscale) reflects sentiment of investors in regulated markets. In this specific case, having single share of GBTC means having approximately 0.001 BTC invested to Grayscale. This endpoint returns metrics related to the US Dollar(USD) price of fund related stocks (e.g. gbtc). We provide five metrics, `price_usd_open`, USD opening price at the beginning of the window, `price_usd_close`, USD closing price at the end of the window, `price_usd_high`, the highest USD price in a given window, `price_usd_low`, the lowest USD price in a given window, and `price_usd_adj_close`, USD adjusted closing price at the end of the window. All Symbol is not supported.\n\n**📖 Data Guide:** [Grayscale Bitcoin Trust (GBTC)](/data-guide/fund-premium/grayscale-bitcoin-trust-gbtc) — definition, interpretation, and chart examples.",
    "operationId": "getBTCMarketPriceUSD",
    "parameters": [
     {
      "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/BTC-Fund-Data)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "gbtc"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/fund-data/market-price-usd?symbol=gbtc&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/fund-data/market-price-usd?symbol=gbtc&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/fund-data/market-price-usd?symbol=gbtc&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/fund-data/market-price-usd?symbol=gbtc&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/fund-data/market-price-usd?symbol=gbtc&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Market Price OHLC and adjusted C Data in USD",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "price_usd_open",
               "price_usd_high",
               "price_usd_low",
               "price_usd_close",
               "price_usd_adj_close"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "price_usd_open": {
                "type": "number",
                "description": "USD opening price at the beginning of the window."
               },
               "price_usd_high": {
                "type": "number",
                "description": "The highest USD price in a given window."
               },
               "price_usd_low": {
                "type": "number",
                "description": "The lowest USD price in a given window."
               },
               "price_usd_close": {
                "type": "number",
                "description": "USD closing price at the end of the window."
               },
               "price_usd_adj_close": {
                "type": "number",
                "description": "USD adjusted closing price at the end of the window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-12",
            "price_usd_open": 49.17,
            "price_usd_high": 49.95,
            "price_usd_low": 48.87,
            "price_usd_close": 49.34,
            "price_usd_adj_close": 49.34
           },
           {
            "date": "2026-06-11",
            "price_usd_open": 48.68,
            "price_usd_high": 49.57,
            "price_usd_low": 48.31,
            "price_usd_close": 49.32,
            "price_usd_adj_close": 49.32
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/fund-data/market-volume": {
   "get": {
    "tags": [
     "BTC Fund Data"
    ],
    "summary": "Market Volume",
    "description": "The volume of certain symbol (e.g. gbtc) managed by each fund (e.g. Grayscale) reflects sentiment of investors in regulated markets. This endpoint returns traded volume of fund related stocks (e.g. gbtc). At this endpoint, metrics are calculated by Day. We provide one metric, `volume`, traded volume of the window.\n\n**📖 Data Guide:** [Grayscale Bitcoin Trust (GBTC)](/data-guide/fund-premium/grayscale-bitcoin-trust-gbtc) — definition, interpretation, and chart examples.",
    "operationId": "getBTCMarketVolume",
    "parameters": [
     {
      "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/BTC-Fund-Data)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "gbtc"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/fund-data/market-volume?symbol=gbtc&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/fund-data/market-volume?symbol=gbtc&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/fund-data/market-volume?symbol=gbtc&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/fund-data/market-volume?symbol=gbtc&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/fund-data/market-volume?symbol=gbtc&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Market Volume Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "volume"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "volume": {
                "type": "number",
                "description": "Traded volume of the window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-12",
            "volume": 2221700
           },
           {
            "date": "2026-06-11",
            "volume": 3005900
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/fund-data/market-premium": {
   "get": {
    "tags": [
     "BTC Fund Data"
    ],
    "summary": "Market Premium",
    "description": "The premium of certain symbol (e.g. gbtc) is defined as (market price of the symbol - NAV) divided by NAV where NAV (Native Asset Value) is the current value of holdings (e.g. BTC price multiplied by BTC per Share). Higher the premium indicates market bullish, which also indicates downside risk. On the other hand, lower the premium indicates market bearish, which also indicates upside risk. All Symbol market premium is calculated by taking VWAP (Volume Weighted Average Ratio) of each fund data volume (usd).\n\n**📖 Data Guide:** [GBTC Premium or Discount](/data-guide/fund-premium/grayscale-bitcoin-trust-gbtc/gbtc-premium-or-discount) — definition, interpretation, and chart examples.",
    "operationId": "getBTCMarketPremium",
    "parameters": [
     {
      "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/BTC-Fund-Data)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "gbtc"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/fund-data/market-premium?symbol=gbtc&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/fund-data/market-premium?symbol=gbtc&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/fund-data/market-premium?symbol=gbtc&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/fund-data/market-premium?symbol=gbtc&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/fund-data/market-premium?symbol=gbtc&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Market Premium Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "market_premium"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "market_premium": {
                "type": "number",
                "description": "Market premium of the window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-12",
            "market_premium": 0.0160136
           },
           {
            "date": "2026-06-11",
            "market_premium": -0.01419039
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/fund-data/digital-asset-holdings": {
   "get": {
    "tags": [
     "BTC Fund Data"
    ],
    "summary": "Digital Asset Holdings",
    "description": "This endpoint returns digital asset holdings status of each fund. For example, Grayscale BTC Holdings along with GBTC represents how much BTC Grayscale is holding for its investment. This metric indicates stock market's sentiment where higher the value means bullish sentiment of investors in stock market.\n\n**📖 Data Guide:** [GBTC Digital Asset Holdings](/data-guide/fund-premium/grayscale-bitcoin-trust-gbtc/gbtc-digital-asset-holdings) — definition, interpretation, and chart examples.",
    "operationId": "getBTCDigitalAssetHoldings",
    "parameters": [
     {
      "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/BTC-Fund-Data)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "gbtc"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/fund-data/digital-asset-holdings?symbol=gbtc&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/fund-data/digital-asset-holdings?symbol=gbtc&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/fund-data/digital-asset-holdings?symbol=gbtc&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/fund-data/digital-asset-holdings?symbol=gbtc&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/fund-data/digital-asset-holdings?symbol=gbtc&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Digital Asset Holdings Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "digital_asset_holdings"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "digital_asset_holdings": {
                "type": "number",
                "description": "Digital Asset Holdings of the window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-12",
            "digital_asset_holdings": 139250.42
           },
           {
            "date": "2026-06-11",
            "digital_asset_holdings": 139202.2
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/stock-to-flow": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Stock to Flow",
    "description": "Stock to Flow is a metric used to assume bitcoin price based on its scarcity just like gold, silver, and other valuable objects that are limited in amount and costly to earn. The same model for evaluating the value of those objects can be adopted to assess the value of bitcoin. The scarcity is calculated by dividing currently circulating coins in the blockchain network to newly supplied coins.  \n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/network-indicators/stock-to-flow-ratio)__\n\n**📖 Data Guide:** [Stock to Flow Ratio](/data-guide/network/stock-to-flow-ratio) · [Stock to Flow Reversion](/data-guide/network/stock-to-flow-reversion) — definition, interpretation, and chart examples.",
    "operationId": "getStockToFlow",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/stock-to-flow?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/stock-to-flow?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/stock-to-flow?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/stock-to-flow?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/stock-to-flow?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "stock_to_flow, stock_to_flow_reversion",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "stock_to_flow",
               "stock_to_flow_reversion"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "stock_to_flow": {
                "type": "number",
                "description": "Stock to Flow is a ratio of currently circulating BTC divided by newly supplied BTC."
               },
               "stock_to_flow_reversion": {
                "type": "number",
                "description": "Stock to Flow Reversion is used to spot market bottoms. It is calculated by dividing the price of bitcoin to its stock-to-flow ratio."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "stock_to_flow": 43929.47,
            "stock_to_flow_reversion": 1.4956905
           },
           {
            "date": "2026-06-13",
            "stock_to_flow": 51722.23,
            "stock_to_flow_reversion": 1.2446781
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/nvt": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "NVT",
    "description": "NVT(Network Value to Transaction) ratio is the network value(`supply_total` * `price_usd`) divided by `tokens_transferred_total`. `nvt` is a metric often used to determine whether Bitcoin price is overvalued or not. The theory behind this indicator is that the value of the token depends on how actively transactions take place on the network.  \n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/network-indicators/nvt-ratio)__\n\n**📖 Data Guide:** [NVT Ratio](/data-guide/network/nvt-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getNetworkIndicatorNVT",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/nvt?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvt?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvt?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvt?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/nvt?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "NVT(Network Value to Transaction) ratio",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "nvt"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "nvt": {
                "type": "number",
                "description": "NVT(Network Value to Transaction) ratio is the network value(supply_total) divided by tokens_transferred_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "nvt": 47.07968766
           },
           {
            "date": "2026-06-13",
            "nvt": 44.7463751
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/nvt-golden-cross": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "NVT Golden Cross",
    "description": "NVT Golden Cross is a modified index of NVT that provides local tops and bottoms. NVT Golden Cross values above 2.2 indicate that downside risk goes up. NVT Golden Cross values below -1.6 mean huge upside potential will occur.  \n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/network-indicators/nvt-golden-cross)__\n\n**📖 Data Guide:** [NVT Golden Cross](/data-guide/network/nvt-golden-cross) — definition, interpretation, and chart examples.",
    "operationId": "getNVTGoldenCross",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/nvt-golden-cross?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvt-golden-cross?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvt-golden-cross?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvt-golden-cross?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/nvt-golden-cross?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "nvt_golden_cross",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "nvt_golden_cross"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "nvt_golden_cross": {
                "type": "number",
                "description": "NVT Golden Cross is a modified index of NVT. NVT Golden Cross value will return null if std is 0."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "nvt_golden_cross": -0.47775327
           },
           {
            "date": "2026-06-13",
            "nvt_golden_cross": -0.98158926
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/nvm": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "NVM",
    "description": "NVM(Network Value to Metcalfe Ratio) is a metric based on Metcalfe’s law; the value of a network is proportional to the square of its nodes or user. NVM is a ratio of market cap divided by daily active address. Based on Metcalfe’s law, the value of bitcoin rises if the daily active addresses increase. Therefore, if the NVM value is relatively small, it means that the value of the network is underestimated and if the value is relatively high, it means that the value of the network is overestimated.  \n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/network-indicators/nvm-ratio)__\n\n**📖 Data Guide:** [NVM Ratio](/data-guide/network/nvm-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getNVM",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/nvm?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvm?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvm?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/nvm?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/nvm?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "nvm",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "nvm"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "nvm": {
                "type": "number",
                "description": "NVM is a ratio of market cap divided by daily active address."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "nvm": 4.09601304
           },
           {
            "date": "2026-06-13",
            "nvm": 3.05011953
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/puell-multiple": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Puell Multiple",
    "description": "Puell Multiple is the mining revenue usd divided by MA 365 mining revenue usd. `puell_multiple` is a metric shows the historically low and high periods of the value of bitcoin issued daily, and at what point investors should buy bitcoin to get high returns. This indicator was created by David Puell.  \n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/network-indicators/puell-multiple)__\n\n**📖 Data Guide:** [Puell Multiple](/data-guide/network/puell-multiple) — definition, interpretation, and chart examples.",
    "operationId": "getPuellMultiple",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/puell-multiple?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/puell-multiple?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/puell-multiple?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/puell-multiple?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/puell-multiple?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "puell_multiple",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "puell_multiple"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "puell_multiple": {
                "type": "number",
                "description": "Puell Multiple is the mining revenue usd divided by MA 365 mining revenue usd."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "puell_multiple": 0.70297991
           },
           {
            "date": "2026-06-13",
            "puell_multiple": 0.59380784
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/cdd": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Coin Days Destroyed",
    "description": "Coin Days Destroyed reflects market participants who have been in the bitcoin on-chain for longer. This indicator gives more weight to long-term-holder position.\n`cdd` is the sum of products of spent transaction output alive days and its value.\n`sa_cdd` is abbreviation of supply-adjusted cdd.\nSince `cdd` increases as the newly created block mined, we need an indicator which normalize `cdd` value. `sa_cdd` is calculated by `cdd` over `supply_total`.\n`average_sa_cdd` is the average value of `sa_cdd` since genesis block.\n`binary_cdd` is the signal whether current `sa_cdd` is larger than `average_sa_cdd` or not. If `sa_cdd` > `average_sa_cdd`, then `binary_cdd` is 1.\nIn conclusion, these indicators help us to estimate how whale's moving.\n\n**📖 Data Guide:** [Coin Days Destroyed (CDD)](/data-guide/utxo/coin-days-destroyed-cdd) · [Binary CDD](/data-guide/utxo/binary-cdd) — definition, interpretation, and chart examples.",
    "operationId": "getCDD",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/cdd?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/cdd?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/cdd?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/cdd?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/cdd?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "cdd",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "cdd",
               "a_cdd",
               "sa_cdd",
               "average_sa_cdd",
               "binary_cdd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "cdd": {
                "type": "number",
                "description": "When UTxO destroyed, Coin Days Destroyed is calculated as the sum value of the number of days between created and spent multiplied by UTxO amount."
               },
               "sa_cdd": {
                "type": "number",
                "description": "Supply Adjusted Coin Days Destroyed is `cdd` value adjusted by supply. It is calculated as the value of `cdd` divided by total supply."
               },
               "average_sa_cdd": {
                "type": "number",
                "description": "Average Supply Adjusted Coin Days Destroyed is the historical average value of `sa_cdd` after generation block."
               },
               "binary_cdd": {
                "type": "integer",
                "description": "Binary Coin Days Destroyed is binary value. When `sa_cdd` is larger than `average_sa_cdd`, `binary_cdd` is 1."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "cdd": 5165639.13,
            "sa_cdd": 0.25773014,
            "average_sa_cdd": 0.55991668,
            "binary_cdd": 0
           },
           {
            "date": "2026-06-13",
            "cdd": 1723714.86,
            "sa_cdd": 0.08600357,
            "average_sa_cdd": 0.55996411,
            "binary_cdd": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/mca": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Mean Coin Age",
    "description": "Mean Coin Age is the mean value of products of bitcoin unspent transaction output alive days and its value.\nIt is basically similar to `cdd`. But `mca` focuses on unspent transaction output.\nMean Coin Dollar Age is the sum value of products of bitcoin unspent transaction output alive days, value, and price at the created time.\n\n**📖 Data Guide:** [Mean Coin Age (MCA)](/data-guide/utxo/mean-coin-age-mca) — definition, interpretation, and chart examples.",
    "operationId": "getMCA",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/mca?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/mca?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/mca?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/mca?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/mca?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "mca",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "mca",
               "mcda"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "mca": {
                "type": "number",
                "description": "Mean Coin Age is the mean value of products of bitcoin unspent transaction output alive days and its value."
               },
               "mcda": {
                "type": "number",
                "description": "Mean Coin Dollar Age is the mean value of products of bitcoin unspent transaction output alive days, value, and price at the created time."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "mca": 1683.91,
            "mcda": 24318288.39
           },
           {
            "date": "2026-06-13",
            "mca": 1683.21,
            "mcda": 24271619.3
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/sca": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Sum Coin Age",
    "description": "Sum Coin Age is the sum value of products of bitcoin unspent transaction output alive days and its value.\nIt is basically similar to `cdd`. But `sca` focuses on unspent transaction output.\nSum Coin Dollar Age is the sum value of products of bitcoin unspent transaction output alive days, value, and price at the created time.\n\n**📖 Data Guide:** [Sum Coin Age (SCA)](/data-guide/utxo/sum-coin-age-sca) — definition, interpretation, and chart examples.",
    "operationId": "getSCA",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/sca?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/sca?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/sca?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/sca?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/sca?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "sca",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "sca",
               "scda"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "sca": {
                "type": "number",
                "description": "Sum Coin Age is the sum value of products of bitcoin unspent transaction output alive days and its value."
               },
               "scda": {
                "type": "number",
                "description": "Sum Coin Dollar Age is the sum value of products of bitcoin unspent transaction output alive days, value, and price at the created time."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "sca": 33750230217.28,
            "scda": 487336786752171.75
           },
           {
            "date": "2026-06-13",
            "sca": 33735478087.16,
            "scda": 486390712250326.75
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/sca-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Sum Coin Age Distribution",
    "description": "This indicator shows the distribution of long-term holder and short-term holder with UTxO data.\nIt is similar to UTxO distribution, but weighted by alive days to highlight long-term holder's distribution in different ranges.\nEach field is calculated as the sum of the products of bitcoin unspent transaction output alive days and its value in a given period, divided by their sum.\nIf long-term SCA distribution ratio increases, then we can interpret this as one of bullish moment.\n\n**📖 Data Guide:** [Sum Coin Age Distribution (SCA Distribution)](/data-guide/utxo/sum-coin-age-distribution-sca-distribution) — definition, interpretation, and chart examples.",
    "operationId": "getSCADistribution",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/sca-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/sca-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/sca-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/sca-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/sca-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "sca-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0d_1d",
               "range_1d_1w",
               "range_1w_1m",
               "range_1m_3m",
               "range_3m_6m",
               "range_6m_12m",
               "range_12m_18m",
               "range_18m_2y",
               "range_2y_3y",
               "range_3y_5y",
               "range_5y_7y",
               "range_7y_10y",
               "range_10y_inf",
               "range_0d_1d_percent",
               "range_1d_1w_percent",
               "range_1w_1m_percent",
               "range_1m_3m_percent",
               "range_3m_6m_percent",
               "range_6m_12m_percent",
               "range_12m_18m_percent",
               "range_18m_2y_percent",
               "range_2y_3y_percent",
               "range_3y_5y_percent",
               "range_5y_7y_percent",
               "range_7y_10y_percent",
               "range_10y_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "range_0d_1d": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is less than 1 day."
               },
               "range_1d_1w": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 1 day and less than 7 days."
               },
               "range_1w_1m": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 7 days and less than 1 month."
               },
               "range_1m_3m": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 1 month and less than 3 months."
               },
               "range_3m_6m": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 3 months and less than 6 months."
               },
               "range_6m_12m": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 6 months and less than 12 months."
               },
               "range_12m_18m": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 12 months and less than 18 months."
               },
               "range_18m_2y": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 18 months and less than 2 years."
               },
               "range_2y_3y": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 2 years and less than 3 years."
               },
               "range_3y_5y": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 3 years and less than 5 years."
               },
               "range_5y_7y": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 5 years and less than 7 years."
               },
               "range_7y_10y": {
                "type": "number",
                "description": "Sum Coin Age distribution value of which alive time is more than 7 years and less than 10 years."
               },
               "range_10y_inf": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 10 years."
               },
               "range_0d_1d_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is less than 1 day."
               },
               "range_1d_1w_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 1 day and less than 7 days."
               },
               "range_1w_1m_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 7 days and less than 1 month."
               },
               "range_1m_3m_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 1 month and less than 3 months."
               },
               "range_3m_6m_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 3 months and less than 6 months."
               },
               "range_6m_12m_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 6 months and less than 12 months."
               },
               "range_12m_18m_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 12 months and less than 18 months."
               },
               "range_18m_2y_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 18 months and less than 2 years."
               },
               "range_2y_3y_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 2 years and less than 3 years."
               },
               "range_3y_5y_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 3 years and less than 5 years."
               },
               "range_5y_7y_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 5 years and less than 7 years."
               },
               "range_7y_10y_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 7 years and less than 10 years."
               },
               "range_10y_inf_percent": {
                "type": "number",
                "description": "Sum Coin Age distribution percent value of which alive time is more than 10 years."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0d_1d": 26007.22,
            "range_1d_1w": 1393280.9,
            "range_1w_1m": 11420917.6,
            "range_1m_3m": 67378556.71,
            "range_3m_6m": 227841862.78,
            "range_6m_12m": 910024205.48,
            "range_12m_18m": 614063901.95,
            "range_18m_2y": 742945175.51,
            "range_2y_3y": 992394360.72,
            "range_3y_5y": 2859381676.78,
            "range_5y_7y": 3046928163.38,
            "range_7y_10y": 5145001514.22,
            "range_10y_inf": 19131430594.02,
            "range_0d_1d_percent": 0.00007706,
            "range_1d_1w_percent": 0.00412821,
            "range_1w_1m_percent": 0.03383953,
            "range_1m_3m_percent": 0.19963881,
            "range_3m_6m_percent": 0.6750824,
            "range_6m_12m_percent": 2.69634962,
            "range_12m_18m_percent": 1.81943619,
            "range_18m_2y_percent": 2.20130402,
            "range_2y_3y_percent": 2.94040768,
            "range_3y_5y_percent": 8.47218421,
            "range_5y_7y_percent": 9.02787372,
            "range_7y_10y_percent": 15.24434495,
            "range_10y_inf_percent": 56.68533361
           },
           {
            "date": "2026-06-13",
            "range_0d_1d": 35419.69,
            "range_1d_1w": 1120868.4,
            "range_1w_1m": 12042170.04,
            "range_1m_3m": 67314312.4,
            "range_3m_6m": 226470710.48,
            "range_6m_12m": 904829327.52,
            "range_12m_18m": 615442789.02,
            "range_18m_2y": 739313666.87,
            "range_2y_3y": 1008521275.21,
            "range_3y_5y": 2841832911.52,
            "range_5y_7y": 3047411370.56,
            "range_7y_10y": 5145443895.49,
            "range_10y_inf": 19125699369.96,
            "range_0d_1d_percent": 0.00010499,
            "range_1d_1w_percent": 0.00332252,
            "range_1w_1m_percent": 0.03569586,
            "range_1m_3m_percent": 0.19953567,
            "range_3m_6m_percent": 0.67131318,
            "range_6m_12m_percent": 2.68212985,
            "range_12m_18m_percent": 1.82431916,
            "range_18m_2y_percent": 2.19150197,
            "range_2y_3y_percent": 2.9894975,
            "range_3y_5y_percent": 8.42387028,
            "range_5y_7y_percent": 9.03325384,
            "range_7y_10y_percent": 15.25232244,
            "range_10y_inf_percent": 56.69313273
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/nupl": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Net Unrealized Profit and Loss",
    "description": "Net Unrealized Profit and Loss shows how different between `market_cap` and `realized_cap`.\n`nupl` is calculated as difference between `market_cap` and `realized_cap` divided by `market_cap`.\nIf `market_cap` > `realized_cap`, then `nupl` > 0, which means bitcoin on-chain expected value is less than what they actually have.\nSo this value will give selling pressure.\n`nup` is net unrealized profit, which is calculated as sum of products of UTxO's value and price difference between created and destroyed, divided by `market_cap`.\n`nup` only contains UTxOs in profit.\n`nul` is net unrealized loss. This is opposite indicator of `nup`.\nIt only contains UTxOs in loss.\n\n**📖 Data Guide:** [Net Unrealized Profit/Loss (NUPL)](/data-guide/utxo/net-unrealized-profit-and-loss-nupl) — definition, interpretation, and chart examples.",
    "operationId": "getNUPL",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/nupl?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/nupl?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/nupl?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/nupl?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/nupl?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "nupl",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "nupl",
               "nup",
               "nul"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "nupl": {
                "type": "number",
                "description": "Net Unrealized Profit and Loss is the difference between `market_cap` and `realized_cap` divided by `market_cap`."
               },
               "nup": {
                "type": "number",
                "description": "Net Unrealized Profit is the sum of products of UTxO's value and price difference between created and destroyed only in profit, divided by `market_cap`."
               },
               "nul": {
                "type": "number",
                "description": "Net Unrealized Loss is the sum of products of UTxO's value and price difference between created and destroyed only in loss, divided by `market_cap`."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "nupl": 0.18565985,
            "nup": 0.36054796,
            "nul": 0.17803528
           },
           {
            "date": "2026-06-13",
            "nupl": 0.16889704,
            "nup": 0.35860263,
            "nul": 0.19008943
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/nrpl": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Net Realized Profit and Loss",
    "description": "Net Realized Profit/Loss metric presenting the net magnitude of profit, or loss realized by all holders spending coins. \nRealized Profit/Loss is assessed relative to the price when a coin last moved.",
    "operationId": "getNRPL",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/nrpl?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/nrpl?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/nrpl?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/nrpl?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/nrpl?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "nrpl",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "nrpl"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "nrpl": {
                "type": "number",
                "description": "Net Realized Profit/Loss metric presenting the net magnitude of profit, or loss realized by all holders spending coins."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "nrpl": 30653958.99
           },
           {
            "date": "2026-06-13",
            "nrpl": -16026804.9
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/pnl-utxo": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Profit and Loss (UTxO)",
    "description": "Profit and Loss (UTxO) evaluates the number of UTxOs being in profit or not by comparing the price between created and destroyed.\nWhen the price at destroyed time is higher than created, this transaction is in profit.\n\n**📖 Data Guide:** [Profit and Loss (UTxO)](/data-guide/utxo/profit-and-loss-utxo) — definition, interpretation, and chart examples.",
    "operationId": "getPNLUTxO",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-utxo?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-utxo?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-utxo?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-utxo?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-utxo?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "pnl-utxo",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "profit_percent",
               "loss_percent",
               "profit_amount",
               "loss_amount"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "profit_percent": {
                "type": "number",
                "description": "A percent of the number of UTxO in profit among total number of UTxO."
               },
               "loss_percent": {
                "type": "number",
                "description": "A percent of the number of UTxO in loss among total number of UTxO."
               },
               "profit_amount": {
                "type": "number",
                "description": "The number of UTxO in profit."
               },
               "loss_amount": {
                "type": "number",
                "description": "The number of UTxO in loss."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "profit_amount": 214888864,
            "loss_amount": 175192686,
            "profit_percent": 55.08701483,
            "loss_percent": 44.91085258
           },
           {
            "date": "2026-06-13",
            "profit_amount": 207884091,
            "loss_amount": 181677051,
            "profit_percent": 53.36292939,
            "loss_percent": 46.6356978
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/pnl-supply": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Profit and Loss (Supply)",
    "description": "Profit and Loss (Supply) evaluates the sum of UTxOs being in profit or not by comparing the price between created and destroyed.\nThese metrics are similar to the ones in Profit and Loss (UTxO) but differ from putting more weight on each UTxO with its value.\nSometimes we want to know the exact alive bitcoin transaction output value in profit. `pnl-supply` will show it accuretely.\n`pnl-supply` is calculated as the sum of UTxO value.\n\n**📖 Data Guide:** [Profit and Loss (Supply)](/data-guide/utxo/profit-and-loss-supply) — definition, interpretation, and chart examples.",
    "operationId": "getPNLSupply",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-supply?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-supply?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-supply?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-supply?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/pnl-supply?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "pnl-supply",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "profit_percent",
               "loss_percent",
               "profit_amount",
               "loss_amount"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "profit_percent": {
                "type": "number",
                "description": "A percent of the sum of UTxO value in profit among total sum of UTxO value."
               },
               "loss_percent": {
                "type": "number",
                "description": "A percent of the sum of UTxO value in loss among total sum of UTxO value."
               },
               "profit_amount": {
                "type": "number",
                "description": "The sum of UTxO value in profit."
               },
               "loss_amount": {
                "type": "number",
                "description": "The sum of UTxO value in loss."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "profit_amount": 10738814.82,
            "loss_amount": 9297635.57,
            "profit_percent": 53.57935789,
            "loss_percent": 46.38885689
           },
           {
            "date": "2026-06-13",
            "profit_amount": 10618069.24,
            "loss_amount": 9422987.66,
            "profit_percent": 52.97812585,
            "loss_percent": 47.01534853
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/dormancy": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Dormancy",
    "description": "Average Dormancy (`average_dormancy`) is the average number of days destroyed per coin transacted. \nSupply-Adjusted Average Dormancy (`sa_average_dormancy`) is the average dormancy normalized by supply total, where supply total increases as more blocks mined.",
    "operationId": "getDormancy",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/dormancy?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/dormancy?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/dormancy?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/dormancy?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/dormancy?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The average number of days destroyed per coin transacted.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "average_dormancy",
               "sa_average_dormancy"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "average_dormancy": {
                "type": "number",
                "description": "The average number of days destroyed per coin transacted."
               },
               "sa_average_dormancy": {
                "type": "number",
                "description": "Average dormancy normalized by supply total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "average_dormancy": 11.87905555,
            "sa_average_dormancy": 5.9e-7
           },
           {
            "date": "2026-06-13",
            "average_dormancy": 3.82068313,
            "sa_average_dormancy": 1.9e-7
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/utxo-age-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "UTxO Age Distribution",
    "description": "UTxO Age Distribution is a set of active supply with age bands. This indicator summarizes the behaviors of long-term or short-term holders along with price actions. We provide the distribution values in native, USD, and percent values.\n\n**📖 Data Guide:** [UTXO Age Bands](/data-guide/utxo/utxo-bands-age/utxo-age-bands) — definition, interpretation, and chart examples.",
    "operationId": "getUTxOAgeDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-age-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-age-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-age-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-age-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-age-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "utxo-age-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0d_1d",
               "range_1d_1w",
               "range_1w_1m",
               "range_1m_3m",
               "range_3m_6m",
               "range_6m_12m",
               "range_12m_18m",
               "range_18m_2y",
               "range_2y_3y",
               "range_3y_5y",
               "range_5y_7y",
               "range_7y_10y",
               "range_10y_inf",
               "range_0d_1d_usd",
               "range_1d_1w_usd",
               "range_1w_1m_usd",
               "range_1m_3m_usd",
               "range_3m_6m_usd",
               "range_6m_12m_usd",
               "range_12m_18m_usd",
               "range_18m_2y_usd",
               "range_2y_3y_usd",
               "range_3y_5y_usd",
               "range_5y_7y_usd",
               "range_7y_10y_usd",
               "range_10y_inf_usd",
               "range_0d_1d_percent",
               "range_1d_1w_percent",
               "range_1w_1m_percent",
               "range_1m_3m_percent",
               "range_3m_6m_percent",
               "range_6m_12m_percent",
               "range_12m_18m_percent",
               "range_18m_2y_percent",
               "range_2y_3y_percent",
               "range_3y_5y_percent",
               "range_5y_7y_percent",
               "range_7y_10y_percent",
               "range_10y_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0d_1d": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 0 day to 1 day."
               },
               "range_1d_1w": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 1 day to 1 week."
               },
               "range_1w_1m": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 1 week to 1 month."
               },
               "range_1m_3m": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 1 month to 3 months."
               },
               "range_3m_6m": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 3 months to 6 months."
               },
               "range_6m_12m": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 6 months to 12 months."
               },
               "range_12m_18m": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 12 months to 18 months."
               },
               "range_18m_2y": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 18 months to 2 years."
               },
               "range_2y_3y": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 2 years to 3 years."
               },
               "range_3y_5y": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 3 years to 5 years."
               },
               "range_5y_7y": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 5 years to 7 years."
               },
               "range_7y_10y": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 7 years to 10 years."
               },
               "range_10y_inf": {
                "type": "number",
                "description": "Total supply of UTxOs of ages over 10 years."
               },
               "range_0d_1d_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 0 day to 1 day in USD."
               },
               "range_1d_1w_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 1 day to 1 week in USD."
               },
               "range_1w_1m_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 1 week to 1 month in USD."
               },
               "range_1m_3m_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 1 month to 3 months in USD."
               },
               "range_3m_6m_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 3 months to 6 months in USD."
               },
               "range_6m_12m_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 6 months to 12 months in USD."
               },
               "range_12m_18m_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 12 months to 18 months in USD."
               },
               "range_18m_2y_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 18 months to 2 years in USD."
               },
               "range_2y_3y_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 2 years to 3 years in USD."
               },
               "range_3y_5y_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 3 years to 5 years in USD."
               },
               "range_5y_7y_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 5 years to 7 years in USD."
               },
               "range_7y_10y_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages between 7 years to 10 years in USD."
               },
               "range_10y_inf_usd": {
                "type": "number",
                "description": "Total supply of UTxOs of ages over 10 years in USD."
               },
               "range_0d_1d_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 0 day to 1 day."
               },
               "range_1d_1w_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 1 day to 1 week."
               },
               "range_1w_1m_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 1 week to 1 month."
               },
               "range_1m_3m_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 1 month to 3 months."
               },
               "range_3m_6m_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 3 months to 6 months."
               },
               "range_6m_12m_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 6 months to 12 months."
               },
               "range_12m_18m_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 12 months to 18 months."
               },
               "range_18m_2y_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 18 months to 2 years."
               },
               "range_2y_3y_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 2 years to 3 years."
               },
               "range_3y_5y_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 3 years to 5 years."
               },
               "range_5y_7y_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 5 years to 7 years."
               },
               "range_7y_10y_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages between 7 years to 10 years."
               },
               "range_10y_inf_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs of ages over 10 years."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0d_1d": 88246.73,
            "range_1d_1w": 380861.42,
            "range_1w_1m": 765846.08,
            "range_1m_3m": 1187116.19,
            "range_3m_6m": 1644111.81,
            "range_6m_12m": 3663539.76,
            "range_12m_18m": 1382916.59,
            "range_18m_2y": 1189171.18,
            "range_2y_3y": 1119005.27,
            "range_3y_5y": 1968606.48,
            "range_5y_7y": 1454147.15,
            "range_7y_10y": 1674859.99,
            "range_10y_inf": 3524392.38,
            "range_0d_1d_usd": 5787967753.74,
            "range_1d_1w_usd": 24980116534.63,
            "range_1w_1m_usd": 50230669405.33,
            "range_1m_3m_usd": 77861129868.57,
            "range_3m_6m_usd": 107834771936.82,
            "range_6m_12m_usd": 240285953740.67,
            "range_12m_18m_usd": 90703377881.11,
            "range_18m_2y_usd": 77995913829.79,
            "range_2y_3y_usd": 73393839233.73,
            "range_3y_5y_usd": 129117879710.79,
            "range_5y_7y_usd": 95375281241.63,
            "range_7y_10y_usd": 109851497893.87,
            "range_10y_inf_usd": 231159489980.54,
            "range_0d_1d_percent": 0.44029097,
            "range_1d_1w_percent": 1.9002386,
            "range_1w_1m_percent": 3.82104931,
            "range_1m_3m_percent": 5.9228997,
            "range_3m_6m_percent": 8.20299602,
            "range_6m_12m_percent": 18.27856347,
            "range_12m_18m_percent": 6.89981009,
            "range_18m_2y_percent": 5.93315272,
            "range_2y_3y_percent": 5.5830727,
            "range_3y_5y_percent": 9.822003,
            "range_5y_7y_percent": 7.255202,
            "range_7y_10y_percent": 8.35640846,
            "range_10y_inf_percent": 17.58431295
           },
           {
            "date": "2026-06-13",
            "range_0d_1d": 93052.45,
            "range_1d_1w": 381362.11,
            "range_1w_1m": 803660.2,
            "range_1m_3m": 1167619.57,
            "range_3m_6m": 1631920.82,
            "range_6m_12m": 3651932.78,
            "range_12m_18m": 1387152.85,
            "range_18m_2y": 1184173.4,
            "range_2y_3y": 1134337.42,
            "range_3y_5y": 1953513.74,
            "range_5y_7y": 1454622.45,
            "range_7y_10y": 1675246.78,
            "range_10y_inf": 3523770.22,
            "range_0d_1d_usd": 5993157901.34,
            "range_1d_1w_usd": 24562096314.7,
            "range_1w_1m_usd": 51760724698.99,
            "range_1m_3m_usd": 75201976081.72,
            "range_3m_6m_usd": 105105869668.91,
            "range_6m_12m_usd": 235207227806.56,
            "range_12m_18m_usd": 89341287309.39,
            "range_18m_2y_usd": 76268145988.9,
            "range_2y_3y_usd": 73058398117.83,
            "range_3y_5y_usd": 125818458146.21,
            "range_5y_7y_usd": 93686750088.85,
            "range_7y_10y_usd": 107896331408.86,
            "range_10y_inf_usd": 226952760208.25,
            "range_0d_1d_percent": 0.46427882,
            "range_1d_1w_percent": 1.90278001,
            "range_1w_1m_percent": 4.00980726,
            "range_1m_3m_percent": 5.82575749,
            "range_3m_6m_percent": 8.14235662,
            "range_6m_12m_percent": 18.22106734,
            "range_12m_18m_percent": 6.92110369,
            "range_18m_2y_percent": 5.9083517,
            "range_2y_3y_percent": 5.65969849,
            "range_3y_5y_percent": 9.7469224,
            "range_5y_7y_percent": 7.25773862,
            "range_7y_10y_percent": 8.35852851,
            "range_10y_inf_percent": 17.58160905
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/utxo-realized-age-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "UTxO Realized Age Distribution",
    "description": "UTxO Realized Age Distribution is a set of active supply with age bands weighted by the price at UTxO created time. Similar to Realized Cap, this indicator summarizes the capitalization held by long-term or short-term holders (each band). We provide the distribution values in native, USD, and percent values.\n\n**📖 Data Guide:** [Realized Cap - UTXO Age Bands](/data-guide/utxo/utxo-bands-age/realized-cap-utxo-age-bands) — definition, interpretation, and chart examples.",
    "operationId": "getUTxORealizedAgeDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-age-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-age-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-age-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-age-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-age-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "utxo-realized-age-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0d_1d_usd",
               "range_1d_1w_usd",
               "range_1w_1m_usd",
               "range_1m_3m_usd",
               "range_3m_6m_usd",
               "range_6m_12m_usd",
               "range_12m_18m_usd",
               "range_18m_2y_usd",
               "range_2y_3y_usd",
               "range_3y_5y_usd",
               "range_5y_7y_usd",
               "range_7y_10y_usd",
               "range_10y_inf_usd",
               "range_0d_1d_percent",
               "range_1d_1w_percent",
               "range_1w_1m_percent",
               "range_1m_3m_percent",
               "range_3m_6m_percent",
               "range_6m_12m_percent",
               "range_12m_18m_percent",
               "range_18m_2y_percent",
               "range_2y_3y_percent",
               "range_3y_5y_percent",
               "range_5y_7y_percent",
               "range_7y_10y_percent",
               "range_10y_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0d_1d_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 0 day to 1 day in USD."
               },
               "range_1d_1w_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 1 day to 1 week in USD."
               },
               "range_1w_1m_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 1 week to 1 month in USD."
               },
               "range_1m_3m_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 1 month to 3 months in USD."
               },
               "range_3m_6m_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 3 months to 6 months in USD."
               },
               "range_6m_12m_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 6 months to 12 months in USD."
               },
               "range_12m_18m_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 12 months to 18 months in USD."
               },
               "range_18m_2y_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 18 months to 2 years in USD."
               },
               "range_2y_3y_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 2 years to 3 years in USD."
               },
               "range_3y_5y_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 3 years to 5 years in USD."
               },
               "range_5y_7y_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 5 years to 7 years in USD."
               },
               "range_7y_10y_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages between 7 years to 10 years in USD."
               },
               "range_10y_inf_usd": {
                "type": "number",
                "description": "Realized supply of UTxOs of ages over 10 years in USD."
               },
               "range_0d_1d_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 0 day to 1 day."
               },
               "range_1d_1w_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 1 day to 1 week."
               },
               "range_1w_1m_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 1 week to 1 month."
               },
               "range_1m_3m_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 1 month to 3 months."
               },
               "range_3m_6m_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 3 months to 6 months."
               },
               "range_6m_12m_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 6 months to 12 months."
               },
               "range_12m_18m_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 12 months to 18 months."
               },
               "range_18m_2y_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 18 months to 2 years."
               },
               "range_2y_3y_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 2 years to 3 years."
               },
               "range_3y_5y_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 3 years to 5 years."
               },
               "range_5y_7y_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 5 years to 7 years."
               },
               "range_7y_10y_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages between 7 years to 10 years."
               },
               "range_10y_inf_percent": {
                "type": "number",
                "description": "Percent realized supply held by UTxOs of ages over 10 years."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0d_1d_usd": 5684416171.75,
            "range_1d_1w_usd": 24010830688.57,
            "range_1w_1m_usd": 53467106569.16,
            "range_1m_3m_usd": 89663795928.88,
            "range_3m_6m_usd": 132982387049.08,
            "range_6m_12m_usd": 375666069311.6,
            "range_12m_18m_usd": 134063090561.75,
            "range_18m_2y_usd": 88341590905.34,
            "range_2y_3y_usd": 55040067285.41,
            "range_3y_5y_usd": 62859749969.89,
            "range_5y_7y_usd": 39975746648.94,
            "range_7y_10y_usd": 10227748031.32,
            "range_10y_inf_usd": 397782059.86,
            "range_0d_1d_percent": 0.53007461,
            "range_1d_1w_percent": 2.23902182,
            "range_1w_1m_percent": 4.98583409,
            "range_1m_3m_percent": 8.36119324,
            "range_3m_6m_percent": 12.40067325,
            "range_6m_12m_percent": 35.03104644,
            "range_12m_18m_percent": 12.50144938,
            "range_18m_2y_percent": 8.23789697,
            "range_2y_3y_percent": 5.13251345,
            "range_3y_5y_percent": 5.86170272,
            "range_5y_7y_percent": 3.72775811,
            "range_7y_10y_percent": 0.95374255,
            "range_10y_inf_percent": 0.03709337
           },
           {
            "date": "2026-06-13",
            "range_0d_1d_usd": 5962153137.75,
            "range_1d_1w_usd": 24004940761.72,
            "range_1w_1m_usd": 56702799233.96,
            "range_1m_3m_usd": 87936172266.43,
            "range_3m_6m_usd": 132290860441.23,
            "range_6m_12m_usd": 374715923552.03,
            "range_12m_18m_usd": 134506426926.34,
            "range_18m_2y_usd": 87754817246.55,
            "range_2y_3y_usd": 55374373800.45,
            "range_3y_5y_usd": 62499457181.6,
            "range_5y_7y_usd": 39952135524.24,
            "range_7y_10y_usd": 10222452251.39,
            "range_10y_inf_usd": 397294903.68,
            "range_0d_1d_percent": 0.55600513,
            "range_1d_1w_percent": 2.23859903,
            "range_1w_1m_percent": 5.28786271,
            "range_1m_3m_percent": 8.20055469,
            "range_3m_6m_percent": 12.33688491,
            "range_6m_12m_percent": 34.94441873,
            "range_12m_18m_percent": 12.54349925,
            "range_18m_2y_percent": 8.18364229,
            "range_2y_3y_percent": 5.16397939,
            "range_3y_5y_percent": 5.82843446,
            "range_5y_7y_percent": 3.72576681,
            "range_7y_10y_percent": 0.95330257,
            "range_10y_inf_percent": 0.03705004
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/utxo-count-age-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "UTxO Count Age Distribution",
    "description": "UTxO Count Age Distribution is a set of active number of holders with age bands. This indicator summarizes how many long-term or short-term holders exist by each band. We provide the distribution values in native, and percent values.\n\n**📖 Data Guide:** [UTXO Count - Age Bands](/data-guide/utxo/utxo-bands-age/utxo-count-age-bands) — definition, interpretation, and chart examples.",
    "operationId": "getUTxOCountAgeDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-age-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-age-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-age-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-age-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-age-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "utxo-count-age-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0d_1d",
               "range_1d_1w",
               "range_1w_1m",
               "range_1m_3m",
               "range_3m_6m",
               "range_6m_12m",
               "range_12m_18m",
               "range_18m_2y",
               "range_2y_3y",
               "range_3y_5y",
               "range_5y_7y",
               "range_7y_10y",
               "range_10y_inf",
               "range_0d_1d_percent",
               "range_1d_1w_percent",
               "range_1w_1m_percent",
               "range_1m_3m_percent",
               "range_3m_6m_percent",
               "range_6m_12m_percent",
               "range_12m_18m_percent",
               "range_18m_2y_percent",
               "range_2y_3y_percent",
               "range_3y_5y_percent",
               "range_5y_7y_percent",
               "range_7y_10y_percent",
               "range_10y_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0d_1d": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 0 day to 1 day."
               },
               "range_1d_1w": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 1 day to 1 week."
               },
               "range_1w_1m": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 1 week to 1 month."
               },
               "range_1m_3m": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 1 month to 3 months."
               },
               "range_3m_6m": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 3 months to 6 months."
               },
               "range_6m_12m": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 6 months to 12 months."
               },
               "range_12m_18m": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 12 months to 18 months."
               },
               "range_18m_2y": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 18 months to 2 years."
               },
               "range_2y_3y": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 2 years to 3 years."
               },
               "range_3y_5y": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 3 years to 5 years."
               },
               "range_5y_7y": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 5 years to 7 years."
               },
               "range_7y_10y": {
                "type": "number",
                "description": "Total count of UTxOs of ages between 7 years to 10 years."
               },
               "range_10y_inf": {
                "type": "number",
                "description": "Total count of UTxOs of ages over 10 years."
               },
               "range_0d_1d_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 0 day to 1 day."
               },
               "range_1d_1w_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 1 day to 1 week."
               },
               "range_1w_1m_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 1 week to 1 month."
               },
               "range_1m_3m_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 1 month to 3 months."
               },
               "range_3m_6m_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 3 months to 6 months."
               },
               "range_6m_12m_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 6 months to 12 months."
               },
               "range_12m_18m_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 12 months to 18 months."
               },
               "range_18m_2y_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 18 months to 2 years."
               },
               "range_2y_3y_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 2 years to 3 years."
               },
               "range_3y_5y_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 3 years to 5 years."
               },
               "range_5y_7y_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 5 years to 7 years."
               },
               "range_7y_10y_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages between 7 years to 10 years."
               },
               "range_10y_inf_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs of ages over 10 years."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0d_1d": 783366,
            "range_1d_1w": 3053564,
            "range_1w_1m": 11050111,
            "range_1m_3m": 23553780,
            "range_3m_6m": 21987903,
            "range_6m_12m": 43095022,
            "range_12m_18m": 26853617,
            "range_18m_2y": 74881096,
            "range_2y_3y": 67278469,
            "range_3y_5y": 25167099,
            "range_5y_7y": 36310745,
            "range_7y_10y": 40285779,
            "range_10y_inf": 15789318,
            "range_0d_1d_percent": 0.2008168,
            "range_1d_1w_percent": 0.78278475,
            "range_1w_1m_percent": 2.83270904,
            "range_1m_3m_percent": 6.0380394,
            "range_3m_6m_percent": 5.63662498,
            "range_6m_12m_percent": 11.04745994,
            "range_12m_18m_percent": 6.88395653,
            "range_18m_2y_percent": 19.19585766,
            "range_2y_3y_percent": 17.24691522,
            "range_3y_5y_percent": 6.45161564,
            "range_5y_7y_percent": 9.30830249,
            "range_7y_10y_percent": 10.32730717,
            "range_10y_inf_percent": 4.04761037
           },
           {
            "date": "2026-06-13",
            "range_0d_1d": 633962,
            "range_1d_1w": 3041670,
            "range_1w_1m": 11066486,
            "range_1m_3m": 23355921,
            "range_3m_6m": 22012461,
            "range_6m_12m": 42963980,
            "range_12m_18m": 26901424,
            "range_18m_2y": 75239158,
            "range_2y_3y": 66886389,
            "range_3y_5y": 25102290,
            "range_5y_7y": 36379964,
            "range_7y_10y": 40210815,
            "range_10y_inf": 15771970,
            "range_0d_1d_percent": 0.16273525,
            "range_1d_1w_percent": 0.78078328,
            "range_1w_1m_percent": 2.84071815,
            "range_1m_3m_percent": 5.99536192,
            "range_3m_6m_percent": 5.65050166,
            "range_6m_12m_percent": 11.0286642,
            "range_12m_18m_percent": 6.90547691,
            "range_18m_2y_percent": 19.31356005,
            "range_2y_3y_percent": 17.16944109,
            "range_3y_5y_percent": 6.44364714,
            "range_5y_7y_percent": 9.33857632,
            "range_7y_10y_percent": 10.32193888,
            "range_10y_inf_percent": 4.04859514
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/spent-output-age-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Spent Output Age Distribution",
    "description": "Spent Output Age Distribution is a set of active sum of spent outputs with age bands. This indicator summarizes how much UTxOs are destroyed by long-term or short-term holders (each band). We provide the distribution values in native, USD, and percent values.\n\n**📖 Data Guide:** [Spent Output Age Bands](/data-guide/utxo/utxo-bands-age/spent-output-age-bands) — definition, interpretation, and chart examples.",
    "operationId": "getSpentOutputAgeDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-age-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-age-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-age-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-age-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-age-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "spent-output-age-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0d_1d",
               "range_1d_1w",
               "range_1w_1m",
               "range_1m_3m",
               "range_3m_6m",
               "range_6m_12m",
               "range_12m_18m",
               "range_18m_2y",
               "range_2y_3y",
               "range_3y_5y",
               "range_5y_7y",
               "range_7y_10y",
               "range_10y_inf",
               "range_0d_1d_usd",
               "range_1d_1w_usd",
               "range_1w_1m_usd",
               "range_1m_3m_usd",
               "range_3m_6m_usd",
               "range_6m_12m_usd",
               "range_12m_18m_usd",
               "range_18m_2y_usd",
               "range_2y_3y_usd",
               "range_3y_5y_usd",
               "range_5y_7y_usd",
               "range_7y_10y_usd",
               "range_10y_inf_usd",
               "range_0d_1d_percent",
               "range_1d_1w_percent",
               "range_1w_1m_percent",
               "range_1m_3m_percent",
               "range_3m_6m_percent",
               "range_6m_12m_percent",
               "range_12m_18m_percent",
               "range_18m_2y_percent",
               "range_2y_3y_percent",
               "range_3y_5y_percent",
               "range_5y_7y_percent",
               "range_7y_10y_percent",
               "range_10y_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0d_1d": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 0 day to 1 day."
               },
               "range_1d_1w": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 1 day to 1 week."
               },
               "range_1w_1m": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 1 week to 1 month."
               },
               "range_1m_3m": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 1 month to 3 months."
               },
               "range_3m_6m": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 3 months to 6 months."
               },
               "range_6m_12m": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 6 months to 12 months."
               },
               "range_12m_18m": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 12 months to 18 months."
               },
               "range_18m_2y": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 18 months to 2 years."
               },
               "range_2y_3y": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 2 years to 3 years."
               },
               "range_3y_5y": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 3 years to 5 years."
               },
               "range_5y_7y": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 5 years to 7 years."
               },
               "range_7y_10y": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 7 years to 10 years."
               },
               "range_10y_inf": {
                "type": "number",
                "description": "Total sum of spent outputs of ages over 10 years."
               },
               "range_0d_1d_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 0 day to 1 day in USD."
               },
               "range_1d_1w_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 1 day to 1 week in USD."
               },
               "range_1w_1m_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 1 week to 1 month in USD."
               },
               "range_1m_3m_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 1 month to 3 months in USD."
               },
               "range_3m_6m_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 3 months to 6 months in USD."
               },
               "range_6m_12m_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 6 months to 12 months in USD."
               },
               "range_12m_18m_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 12 months to 18 months in USD."
               },
               "range_18m_2y_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 18 months to 2 years in USD."
               },
               "range_2y_3y_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 2 years to 3 years in USD."
               },
               "range_3y_5y_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 3 years to 5 years in USD."
               },
               "range_5y_7y_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 5 years to 7 years in USD."
               },
               "range_7y_10y_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages between 7 years to 10 years in USD."
               },
               "range_10y_inf_usd": {
                "type": "number",
                "description": "Total sum of spent outputs of ages over 10 years in USD."
               },
               "range_0d_1d_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 0 day to 1 day."
               },
               "range_1d_1w_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 1 day to 1 week."
               },
               "range_1w_1m_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 1 week to 1 month."
               },
               "range_1m_3m_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 1 month to 3 months."
               },
               "range_3m_6m_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 3 months to 6 months."
               },
               "range_6m_12m_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 6 months to 12 months."
               },
               "range_12m_18m_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 12 months to 18 months."
               },
               "range_18m_2y_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 18 months to 2 years."
               },
               "range_2y_3y_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 2 years to 3 years."
               },
               "range_3y_5y_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 3 years to 5 years."
               },
               "range_5y_7y_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 5 years to 7 years."
               },
               "range_7y_10y_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages between 7 years to 10 years."
               },
               "range_10y_inf_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs of ages over 10 years."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0d_1d": 395983.33,
            "range_1d_1w": 29918.38,
            "range_1w_1m": 4355.29,
            "range_1m_3m": 1024.45,
            "range_3m_6m": 796.6036147,
            "range_6m_12m": 373.42831001,
            "range_12m_18m": 385.71919423,
            "range_18m_2y": 165.29558017,
            "range_2y_3y": 210.17194114,
            "range_3y_5y": 231.26661765,
            "range_5y_7y": 230.94946764,
            "range_7y_10y": 1094.41,
            "range_10y_inf": 83.3787666,
            "range_0d_1d_usd": 25479170516.64,
            "range_1d_1w_usd": 1926996184.43,
            "range_1w_1m_usd": 280804261.52,
            "range_1m_3m_usd": 65949208.97,
            "range_3m_6m_usd": 51288397.22,
            "range_6m_12m_usd": 24007533.98,
            "range_12m_18m_usd": 24838570.69,
            "range_18m_2y_usd": 10629793.56,
            "range_2y_3y_usd": 13502347.44,
            "range_3y_5y_usd": 14897439.88,
            "range_5y_7y_usd": 14924317.25,
            "range_7y_10y_usd": 70309014.62,
            "range_10y_inf_usd": 5375281.73,
            "range_0d_1d_percent": 91.06149075,
            "range_1d_1w_percent": 6.88011957,
            "range_1w_1m_percent": 1.00155434,
            "range_1m_3m_percent": 0.235586,
            "range_3m_6m_percent": 0.18318931,
            "range_6m_12m_percent": 0.08587467,
            "range_12m_18m_percent": 0.08870112,
            "range_18m_2y_percent": 0.03801186,
            "range_2y_3y_percent": 0.04833176,
            "range_3y_5y_percent": 0.05318275,
            "range_5y_7y_percent": 0.05310982,
            "range_7y_10y_percent": 0.25167402,
            "range_10y_inf_percent": 0.01917403
           },
           {
            "date": "2026-06-13",
            "range_0d_1d": 410209.17,
            "range_1d_1w": 30619.61,
            "range_1w_1m": 5393.85,
            "range_1m_3m": 2363.93,
            "range_3m_6m": 1229.21,
            "range_6m_12m": 213.35516244,
            "range_12m_18m": 240.86232037,
            "range_18m_2y": 222.31282952,
            "range_2y_3y": 209.03033456,
            "range_3y_5y": 334.22777392,
            "range_5y_7y": 48.2316921,
            "range_7y_10y": 41.59404371,
            "range_10y_inf": 28.19264423,
            "range_0d_1d_usd": 26226715933.32,
            "range_1d_1w_usd": 1957328294.99,
            "range_1w_1m_usd": 344357972.43,
            "range_1m_3m_usd": 151413362.78,
            "range_3m_6m_usd": 78422441.02,
            "range_6m_12m_usd": 13637773.04,
            "range_12m_18m_usd": 15430999.3,
            "range_18m_2y_usd": 14209414.63,
            "range_2y_3y_usd": 13368375.37,
            "range_3y_5y_usd": 21385124.98,
            "range_5y_7y_usd": 3083589.89,
            "range_7y_10y_usd": 2670889.25,
            "range_10y_inf_usd": 1796516.99,
            "range_0d_1d_percent": 90.92450875,
            "range_1d_1w_percent": 6.78695875,
            "range_1w_1m_percent": 1.19556769,
            "range_1m_3m_percent": 0.52397434,
            "range_3m_6m_percent": 0.27246023,
            "range_6m_12m_percent": 0.04729103,
            "range_12m_18m_percent": 0.0533881,
            "range_18m_2y_percent": 0.04927653,
            "range_2y_3y_percent": 0.04633241,
            "range_3y_5y_percent": 0.07408293,
            "range_5y_7y_percent": 0.01069075,
            "range_7y_10y_percent": 0.00921949,
            "range_10y_inf_percent": 0.00624901
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/utxo-supply-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "UTxO Supply Distribution",
    "description": "UTxO Supply Distribution is a set of active supply with balance (supply) bands. This indicator summarizes the behaviors of whales or retails separated by amount of coins they hold along with price actions. We provide the distribution values in native, and percent values.\n\n**📖 Data Guide:** [UTXO Value Bands](/data-guide/utxo/utxo-bands-value/utxo-value-bands) — definition, interpretation, and chart examples.",
    "operationId": "getUTxOSupplyDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-supply-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-supply-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-supply-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-supply-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-supply-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "utxo-supply-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0_001",
               "range_001_01",
               "range_01_1",
               "range_1_10",
               "range_10_100",
               "range_100_1k",
               "range_1k_10k",
               "range_10k_inf",
               "range_0_001_percent",
               "range_001_01_percent",
               "range_01_1_percent",
               "range_1_10_percent",
               "range_10_100_percent",
               "range_100_1k_percent",
               "range_1k_10k_percent",
               "range_10k_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0_001": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between 0 and 0.01."
               },
               "range_001_01": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between 0.01 and 0.1."
               },
               "range_01_1": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between 0.1 and 1."
               },
               "range_1_10": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between 1 and 10."
               },
               "range_10_100": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between 10 and 100."
               },
               "range_100_1k": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between 100 and 1k."
               },
               "range_1k_10k": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between 1k and 10k."
               },
               "range_10k_inf": {
                "type": "number",
                "description": "Total supply of UTxOs with balance over 10k."
               },
               "range_0_001_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between 0 and 0.01."
               },
               "range_001_01_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between 0.01 and 0.1."
               },
               "range_01_1_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between 0.1 and 1."
               },
               "range_1_10_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between 1 and 10."
               },
               "range_10_100_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between 10 and 100."
               },
               "range_100_1k_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between 100 and 1k."
               },
               "range_1k_10k_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between 1k and 10k."
               },
               "range_10k_inf_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance over 10k."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0_001": 85440.02,
            "range_001_01": 383918.91,
            "range_01_1": 1242085.88,
            "range_1_10": 2256418.14,
            "range_10_100": 4602117.38,
            "range_100_1k": 5673041.86,
            "range_1k_10k": 4278620.87,
            "range_10k_inf": 1521177.99,
            "range_0_001_percent": 0.42628739,
            "range_001_01_percent": 1.91549339,
            "range_01_1_percent": 6.19716098,
            "range_1_10_percent": 11.25798675,
            "range_10_100_percent": 22.96142527,
            "range_100_1k_percent": 28.30460764,
            "range_1k_10k_percent": 21.34739846,
            "range_10k_inf_percent": 7.58964013
           },
           {
            "date": "2026-06-13",
            "range_0_001": 85431.38,
            "range_001_01": 383852.68,
            "range_01_1": 1241976.28,
            "range_1_10": 2256013.44,
            "range_10_100": 4603853.36,
            "range_100_1k": 5672356.6,
            "range_1k_10k": 4277708.55,
            "range_10k_inf": 1521172.51,
            "range_0_001_percent": 0.42625398,
            "range_001_01_percent": 1.91520653,
            "range_01_1_percent": 6.1967552,
            "range_1_10_percent": 11.25622381,
            "range_10_100_percent": 22.97060953,
            "range_100_1k_percent": 28.30183294,
            "range_1k_10k_percent": 21.34333246,
            "range_10k_inf_percent": 7.58978556
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/utxo-realized-supply-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "UTxO Realized Supply Distribution",
    "description": "UTxO Realized Supply Distribution is a set of active supply with balance (supply) bands weighted by the price at UTxO created time. Similar to Realized Cap, this indicator summarizes the capitalization held by whales or retails (each band). We provide the distribution values in USD, and percent values.\n\n**📖 Data Guide:** [Realized Cap - UTXO Value Bands USD](/data-guide/utxo/utxo-bands-value/realized-cap-utxo-value-bands-usd) — definition, interpretation, and chart examples.",
    "operationId": "getUTxORealizedSupplyDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-supply-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-supply-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-supply-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-supply-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-realized-supply-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "utxo-realized-supply-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0_1_usd",
               "range_1_10_usd",
               "range_10_100_usd",
               "range_100_1k_usd",
               "range_1k_10k_usd",
               "range_10k_100k_usd",
               "range_100k_1M_usd",
               "range_1M_inf_usd",
               "range_0_1_percent",
               "range_1_10_percent",
               "range_10_100_percent",
               "range_100_1k_percent",
               "range_1k_10k_percent",
               "range_10k_100k_percent",
               "range_100k_1M_percent",
               "range_1M_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0_1_usd": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between $0 and $1."
               },
               "range_1_10_usd": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between $1 and $10."
               },
               "range_10_100_usd": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between $10 and $100."
               },
               "range_100_1k_usd": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between $100 and $1k."
               },
               "range_1k_10k_usd": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between $1k and $10k."
               },
               "range_10k_100k_usd": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between $10k and $100k."
               },
               "range_100k_1M_usd": {
                "type": "number",
                "description": "Total supply of UTxOs with balance between $100k and $1M."
               },
               "range_1M_inf_usd": {
                "type": "number",
                "description": "Total supply of UTxOs with balance over $1M."
               },
               "range_0_1_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between $0 and $1."
               },
               "range_1_10_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between $1 and $10."
               },
               "range_10_100_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between $10 and $100."
               },
               "range_100_1k_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between $100 and $1k."
               },
               "range_1k_10k_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between $1k and $10k."
               },
               "range_10k_100k_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between $10k and $100k."
               },
               "range_100k_1M_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance between $100k and $1M."
               },
               "range_1M_inf_percent": {
                "type": "number",
                "description": "Percent supply held by UTxOs with balance over $1M."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0_1_usd": 27012393.45,
            "range_1_10_usd": 71636305.84,
            "range_10_100_usd": 858314264.11,
            "range_100_1k_usd": 5538694208.45,
            "range_1k_10k_usd": 24559722389.43,
            "range_10k_100k_usd": 68509838242.86,
            "range_100k_1M_usd": 110407696558.93,
            "range_1M_inf_usd": 862407466818.43,
            "range_0_1_percent": 0.00251892,
            "range_1_10_percent": 0.00668012,
            "range_10_100_percent": 0.08003823,
            "range_100_1k_percent": 0.51648597,
            "range_1k_10k_percent": 2.29020624,
            "range_10k_100k_percent": 6.38857624,
            "range_100k_1M_percent": 10.29557221,
            "range_1M_inf_percent": 80.41992207
           },
           {
            "date": "2026-06-13",
            "range_0_1_usd": 27009889.08,
            "range_1_10_usd": 71642924.25,
            "range_10_100_usd": 858287321.11,
            "range_100_1k_usd": 5538036159.44,
            "range_1k_10k_usd": 24556112420.91,
            "range_10k_100k_usd": 68484215129.91,
            "range_100k_1M_usd": 110386782776.21,
            "range_1M_inf_usd": 862397720606.39,
            "range_0_1_percent": 0.00251883,
            "range_1_10_percent": 0.00668112,
            "range_10_100_percent": 0.08004024,
            "range_100_1k_percent": 0.51645378,
            "range_1k_10k_percent": 2.28999896,
            "range_10k_100k_percent": 6.38654762,
            "range_100k_1M_percent": 10.29420347,
            "range_1M_inf_percent": 80.42355599
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/utxo-count-supply-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "UTxO Count Supply Distribution",
    "description": "UTxO Count Supply Distribution is a set of active number of holders with balance (supply) bands. This indicator summarizes how many whales and retails exist by each band. We provide the distribution values in native, and percent values.\n\n**📖 Data Guide:** [UTXO Count - Value Bands](/data-guide/utxo/utxo-bands-value/utxo-count-value-bands) — definition, interpretation, and chart examples.",
    "operationId": "getUTxOCountSupplyDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-supply-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-supply-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-supply-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-supply-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/utxo-count-supply-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "utxo-count-supply-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0_001",
               "range_001_01",
               "range_01_1",
               "range_1_10",
               "range_10_100",
               "range_100_1k",
               "range_1k_10k",
               "range_10k_inf",
               "range_0_001_percent",
               "range_001_01_percent",
               "range_01_1_percent",
               "range_1_10_percent",
               "range_10_100_percent",
               "range_100_1k_percent",
               "range_1k_10k_percent",
               "range_10k_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0_001": {
                "type": "number",
                "description": "Total count of UTxOs with balance between 0 and 0.01."
               },
               "range_001_01": {
                "type": "number",
                "description": "Total count of UTxOs with balance between 0.01 and 0.1."
               },
               "range_01_1": {
                "type": "number",
                "description": "Total count of UTxOs with balance between 0.1 and 1."
               },
               "range_1_10": {
                "type": "number",
                "description": "Total count of UTxOs with balance between 1 and 10."
               },
               "range_10_100": {
                "type": "number",
                "description": "Total count of UTxOs with balance between 10 and 100."
               },
               "range_100_1k": {
                "type": "number",
                "description": "Total count of UTxOs with balance between 100 and 1k."
               },
               "range_1k_10k": {
                "type": "number",
                "description": "Total count of UTxOs with balance between 1k and 10k."
               },
               "range_10k_inf": {
                "type": "number",
                "description": "Total count of UTxOs with balance over 10k."
               },
               "range_0_001_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs with balance between 0 and 0.01."
               },
               "range_001_01_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs with balance between 0.01 and 0.1."
               },
               "range_01_1_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs with balance between 0.1 and 1."
               },
               "range_1_10_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs with balance between 1 and 10."
               },
               "range_10_100_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs with balance between 10 and 100."
               },
               "range_100_1k_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs with balance between 100 and 1k."
               },
               "range_1k_10k_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs with balance between 1k and 10k."
               },
               "range_10k_inf_percent": {
                "type": "number",
                "description": "Percent count held by UTxOs with balance over 10k."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0_001": 372796361,
            "range_001_01": 12046127,
            "range_01_1": 4197029,
            "range_1_10": 911265,
            "range_10_100": 142207,
            "range_100_1k": 20753,
            "range_1k_10k": 1922,
            "range_10k_inf": 58,
            "range_0_001_percent": 95.56045552,
            "range_001_01_percent": 3.08783428,
            "range_01_1_percent": 1.07584205,
            "range_1_10_percent": 0.23358838,
            "range_10_100_percent": 0.03645252,
            "range_100_1k_percent": 0.0053197,
            "range_1k_10k_percent": 0.00049267,
            "range_10k_inf_percent": 0.00001487
           },
           {
            "date": "2026-06-13",
            "range_0_001": 372275528,
            "range_001_01": 12044381,
            "range_01_1": 4196645,
            "range_1_10": 910843,
            "range_10_100": 142220,
            "range_100_1k": 20747,
            "range_1k_10k": 1921,
            "range_10k_inf": 58,
            "range_0_001_percent": 95.55514493,
            "range_001_01_percent": 3.09153432,
            "range_01_1_percent": 1.07718878,
            "range_1_10_percent": 0.23379387,
            "range_10_100_percent": 0.03650482,
            "range_100_1k_percent": 0.00532531,
            "range_1k_10k_percent": 0.00049308,
            "range_10k_inf_percent": 0.00001489
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/network-indicator/spent-output-supply-distribution": {
   "get": {
    "tags": [
     "BTC Network Indicator"
    ],
    "summary": "Spent Output Supply Distribution",
    "description": "Spent Output Supply Distribution is a set of active sum of spent outputs with balance (supply) bands. This indicator summarizes how much UTxOs are destroyed by whales or retails (each band). We provide the distribution values in native, USD, and percent values.\n\n**📖 Data Guide:** [Spent Output Value Bands](/data-guide/utxo/utxo-bands-value/spent-output-value-bands) — definition, interpretation, and chart examples.",
    "operationId": "getSpentOutputSupplyDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-supply-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-supply-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-supply-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-supply-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/network-indicator/spent-output-supply-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "spent-output-supply-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0_001",
               "range_001_01",
               "range_01_1",
               "range_1_10",
               "range_10_100",
               "range_100_1k",
               "range_1k_10k",
               "range_10k_inf",
               "range_0_1_usd",
               "range_1_10_usd",
               "range_10_100_usd",
               "range_100_1k_usd",
               "range_1k_10k_usd",
               "range_10k_100k_usd",
               "range_100k_1M_usd",
               "range_1M_inf_usd",
               "range_0_001_percent",
               "range_001_01_percent",
               "range_01_1_percent",
               "range_1_10_percent",
               "range_10_100_percent",
               "range_100_1k_percent",
               "range_1k_10k_percent",
               "range_10k_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0_001": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between 0 and 0.01."
               },
               "range_001_01": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between 0.01 and 0.1."
               },
               "range_01_1": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between 0.1 and 1."
               },
               "range_1_10": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between 1 and 10."
               },
               "range_10_100": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between 10 and 100."
               },
               "range_100_1k": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between 100 and 1k."
               },
               "range_1k_10k": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between 1k and 10k."
               },
               "range_10k_inf": {
                "type": "number",
                "description": "Total sum of spent outputs with balance over 10k."
               },
               "range_0_1_usd": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between $0 and $1."
               },
               "range_1_10_usd": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between $1 and $10."
               },
               "range_10_100_usd": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between $10 and $100."
               },
               "range_100_1k_usd": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between $100 and $1k."
               },
               "range_1k_10k_usd": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between $1k and $10k."
               },
               "range_10k_100k_usd": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between $10k and $100k."
               },
               "range_100k_1M_usd": {
                "type": "number",
                "description": "Total sum of spent outputs with balance between $100k and $1M."
               },
               "range_1M_inf_usd": {
                "type": "number",
                "description": "Total sum of spent outputs with balance over $1M."
               },
               "range_0_001_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs with balance between 0 and 0.01."
               },
               "range_001_01_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs with balance between 0.01 and 0.1."
               },
               "range_01_1_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs with balance between 0.1 and 1."
               },
               "range_1_10_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs with balance between 1 and 10."
               },
               "range_10_100_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs with balance between 10 and 100."
               },
               "range_100_1k_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs with balance between 100 and 1k."
               },
               "range_1k_10k_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs with balance between 1k and 10k."
               },
               "range_10k_inf_percent": {
                "type": "number",
                "description": "Percent sum of spent outputs with balance over 10k."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0_001": 1407.21,
            "range_001_01": 2682.01,
            "range_01_1": 10321.47,
            "range_1_10": 40662.01,
            "range_10_100": 140627.42,
            "range_100_1k": 75036.03,
            "range_1k_10k": 103535.34,
            "range_10k_inf": 60581.2,
            "range_0_1_usd": 26411.32,
            "range_1_10_usd": 863598.39,
            "range_10_100_usd": 20046582.24,
            "range_100_1k_usd": 91292304.69,
            "range_1k_10k_usd": 208560971.5,
            "range_10k_100k_usd": 843110757.62,
            "range_100k_1M_usd": 3113485467.07,
            "range_1M_inf_usd": 23705306775.12,
            "range_0_001_percent": 0.32360616,
            "range_001_01_percent": 0.61676249,
            "range_01_1_percent": 2.37355502,
            "range_1_10_percent": 9.35075587,
            "range_10_100_percent": 32.33909394,
            "range_100_1k_percent": 17.25550661,
            "range_1k_10k_percent": 23.80929015,
            "range_10k_inf_percent": 13.93142976
           },
           {
            "date": "2026-06-13",
            "range_0_001": 1251.05,
            "range_001_01": 2780.97,
            "range_01_1": 10207.84,
            "range_1_10": 41960.47,
            "range_10_100": 139307.24,
            "range_100_1k": 87857.97,
            "range_1k_10k": 107226.81,
            "range_10k_inf": 60561.22,
            "range_0_1_usd": 29711.3,
            "range_1_10_usd": 722141.24,
            "range_10_100_usd": 15398139.15,
            "range_100_1k_usd": 82625113.7,
            "range_1k_10k_usd": 206479301.5,
            "range_10k_100k_usd": 807111294.62,
            "range_100k_1M_usd": 3081372698.31,
            "range_1M_inf_usd": 24063686840.34,
            "range_0_001_percent": 0.27730006,
            "range_001_01_percent": 0.61641232,
            "range_01_1_percent": 2.26260786,
            "range_1_10_percent": 9.30070659,
            "range_10_100_percent": 30.87800956,
            "range_100_1k_percent": 19.47407224,
            "range_1k_10k_percent": 23.76725359,
            "range_10k_inf_percent": 13.42363779
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-indicator/estimated-leverage-ratio": {
   "get": {
    "tags": [
     "BTC Market Indicator"
    ],
    "summary": "Estimated Leverage Ratio",
    "description": "By dividing the open interest of an exchange by their BTC reserve, you can estimate a relative average user leverage. Whenever the leverage value reaches a high, there is rapid volatility. Similar to Open Interest, but more accurate because it reflects the growth of the exchange itself. This is experimental indicator but it seems this reflects market sentiment. You can see how aggressive people are and how conservative they are in terms of investment. For 'In Progress' exchanges, estimated leverage ratio is not supported yet even though they provide open interest.\n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/market-indicators/estimated-leverage-ratio)__\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new exchange wallets are discovered, added, and validated.\n\n<br/>\n\n**📖 Data Guide:** [Estimated Leverage Ratio](/data-guide/market/estimated-leverage-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getEstimatedLeverageRatio",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/BTCgetOpenInterest).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "bitmex"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of open interest of exchange divided by their BTC reserve",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "estimated_leverage_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "estimated_leverage_ratio": {
                "type": "number",
                "description": "The amount of open interest in the given period and exchange divided by the BTC reserve of given exchange"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "estimated_leverage_ratio": 0.11231894
           },
           {
            "date": "2026-06-13",
            "estimated_leverage_ratio": 0.12598907
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-indicator/stablecoin-supply-ratio": {
   "get": {
    "tags": [
     "BTC Market Indicator"
    ],
    "summary": "Stablecoin Supply Ratio",
    "description": "SSR(Stablecoin Supply Ratio) is a ratio of stablecoin supply in the whole cryptocurrency market where stablecoin is used as fiat substitute for trading. This means that the supply of stablecoin can be used to assess the potential buying pressure for bitcoin. The historical starting point is 2017-11-28 00:00:00.  \n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/market-indicators/stablecoin-supply-ratio)__\n\n**📖 Data Guide:** [Stablecoin Supply Ratio (SSR)](/data-guide/stablecoin/stablecoin-supply-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getStablecoinSupplyRatio",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-indicator/stablecoin-supply-ratio?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-indicator/stablecoin-supply-ratio?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-indicator/stablecoin-supply-ratio?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-indicator/stablecoin-supply-ratio?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-indicator/stablecoin-supply-ratio?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "stablecoin_supply_ratio",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "stablecoin_supply_ratio"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "stablecoin_supply_ratio": {
                "type": "number",
                "description": "SSR is a ratio of stablecoin supply in the whole cryptocurrency market."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "stablecoin_supply_ratio": "10.74141241"
           },
           {
            "date": "2026-06-13",
            "stablecoin_supply_ratio": "10.53184780"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-indicator/mvrv": {
   "get": {
    "tags": [
     "BTC Market Indicator"
    ],
    "summary": "MVRV",
    "description": "MVRV(Market-Value-to-Realized-Value) is a ratio of `market_cap` divided by `realized_cap`. It can be interpreted as the relationship between short-term and long-term investors (i.e. speculators vs hodlers). When this value is too high, BTC price may be overvalued, and if it is too low, there is a possibility that the price is undervalued.  \n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/market-indicators/mvrv-ratio)__\n\n**📖 Data Guide:** [MVRV (Market Value to Realized Value) Ratio](/data-guide/market/mvrv-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getMarketIndicatorMVRV",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-indicator/mvrv?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-indicator/mvrv?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-indicator/mvrv?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-indicator/mvrv?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-indicator/mvrv?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "mvrv",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "mvrv"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "mvrv": {
                "type": "number",
                "description": "market_cap/realized_cap"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "mvrv": 1.22798809
           },
           {
            "date": "2026-06-13",
            "mvrv": 1.20322035
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-indicator/sopr": {
   "get": {
    "tags": [
     "BTC Market Indicator"
    ],
    "summary": "Spent Output Profit Ratio",
    "description": "`sopr` is abbreviation of Spent Output Profit Ratio.\nSpent Output Profit Ratio evaluates the profit ratio of the whole market participants by comparing the value of outputs at spent time to created time.\n`sopr` is a ratio that is calculated as the USD value of spent outputs at the spent time divided by the USD value of spent outputs at the created time.\nSo you can see the value when UTxO destroyed. In a simple way, you can estimate the distribution of spent transaction output are in profit or not.\n\n**📖 Data Guide:** [Spent Output Profit Ratio (SOPR)](/data-guide/utxo/spent-output-profit-ratio-sopr) · [aSOPR (Adjusted SOPR)](/data-guide/utxo/spent-output-profit-ratio-sopr/asopr-adjusted-sopr) · [STH-SOPR](/data-guide/utxo/spent-output-profit-ratio-sopr/sth-sopr) · [LTH-SOPR](/data-guide/utxo/spent-output-profit-ratio-sopr/lth-sopr) — definition, interpretation, and chart examples.",
    "operationId": "getSOPR",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-indicator/sopr?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-indicator/sopr?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-indicator/sopr?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-indicator/sopr?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-indicator/sopr?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "spent_output_profit_ratio",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "sopr",
               "a_sopr",
               "sth_sopr",
               "lth_sopr"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "sopr": {
                "type": "number",
                "description": "Spent Output Profit Ratio is a ratio of spent outputs in profit at the time of the window."
               },
               "a_sopr": {
                "type": "number",
                "description": "Adjusted spent output only includes alive more than 1 hour."
               },
               "sth_sopr": {
                "type": "number",
                "description": "Short term holder spent output only includes alive more than 1 hour and less than 155 days."
               },
               "lth_sopr": {
                "type": "number",
                "description": "Long term holder spent output only includes alive more than 155 days."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "sopr": 1.00109708,
            "a_sopr": 1.00222506,
            "sth_sopr": 0.99855935,
            "lth_sopr": 1.39829323
           },
           {
            "date": "2026-06-13",
            "sopr": 0.9994445,
            "a_sopr": 0.99887337,
            "sth_sopr": 0.99892421,
            "lth_sopr": 0.98953807
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-indicator/sopr-ratio": {
   "get": {
    "tags": [
     "BTC Market Indicator"
    ],
    "summary": "SOPR Ratio",
    "description": "SOPR Ratio is calculated as long term holders' SOPR divided by short term holders' SOPR. Higher value of the ratio means higher spent profit of LTH over STH, which is usually useful for spotting market tops.\n\n**📖 Data Guide:** [SOPR Ratio (LTH-SOPR/STH-SOPR)](/data-guide/utxo/spent-output-profit-ratio-sopr/sopr-ratio-lth-sopr-sth-sopr) — definition, interpretation, and chart examples.",
    "operationId": "getSOPRRatio",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-indicator/sopr-ratio?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-indicator/sopr-ratio?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-indicator/sopr-ratio?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-indicator/sopr-ratio?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-indicator/sopr-ratio?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Long term holders' SOPR divided by short term holders' SOPR.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "sopr_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "sopr_ratio": {
                "type": "number",
                "description": "Long term holders' SOPR divided by short term holders' SOPR."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "sopr_ratio": 1.40031059
           },
           {
            "date": "2026-06-13",
            "sopr_ratio": 0.99060375
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-indicator/realized-price": {
   "get": {
    "tags": [
     "BTC Market Indicator"
    ],
    "summary": "Realized Price",
    "description": "Realized Price is calculated as Realized Cap divided by the total coin supply. It measures the  average price weighted by the supply of what the entire market participants paid for their coins. It sometimes can be interpreted as the on-chain support or resistance price.\n\n**📖 Data Guide:** [Realized Price](/data-guide/market/realized-price) — definition, interpretation, and chart examples.",
    "operationId": "getRealizedPrice",
    "parameters": [
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-indicator/realized-price?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-indicator/realized-price?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-indicator/realized-price?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-indicator/realized-price?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-indicator/realized-price?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Realized Cap divided by total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "realized_price"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "realized_price": {
                "type": "number",
                "description": "Realized Cap divided by total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "realized_price": 53506.13
           },
           {
            "date": "2026-06-13",
            "realized_price": 53504.36
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/market-indicator/utxo-realized-price-age-distribution": {
   "get": {
    "tags": [
     "BTC Market Indicator"
    ],
    "summary": "UTxO Realized Price Age Distribution",
    "description": "UTxO Realized Price Age Distribution is a set of realized prices along with age bands. The metrics help us to overview each cohort’s holding behavior by overlaying a set of different realized prices.\n\n**📖 Data Guide:** [Realized Price - UTXO Age Bands](/data-guide/utxo/utxo-bands-age/realized-price-utxo-age-bands) — definition, interpretation, and chart examples.",
    "operationId": "getUTxORealizedPriceAgeDistribution",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/market-indicator/utxo-realized-price-age-distribution?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/market-indicator/utxo-realized-price-age-distribution?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/market-indicator/utxo-realized-price-age-distribution?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/market-indicator/utxo-realized-price-age-distribution?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/market-indicator/utxo-realized-price-age-distribution?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "utxo-realized-price-age-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0d_1d",
               "range_1d_1w",
               "range_1w_1m",
               "range_1m_3m",
               "range_3m_6m",
               "range_6m_12m",
               "range_12m_18m",
               "range_18m_2y",
               "range_2y_3y",
               "range_3y_5y",
               "range_5y_7y",
               "range_7y_10y",
               "range_10y_inf"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0d_1d": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 0 day to 1 day."
               },
               "range_1d_1w": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 1 day to 1 week."
               },
               "range_1w_1m": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 1 week to 1 month."
               },
               "range_1m_3m": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 1 month to 3 months."
               },
               "range_3m_6m": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 3 months to 6 months."
               },
               "range_6m_12m": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 6 months to 12 months."
               },
               "range_12m_18m": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 12 months to 18 months."
               },
               "range_18m_2y": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 18 months to 2 years."
               },
               "range_2y_3y": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 2 years to 3 years."
               },
               "range_3y_5y": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 3 years to 5 years."
               },
               "range_5y_7y": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 5 years to 7 years."
               },
               "range_7y_10y": {
                "type": "number",
                "description": "Realized price of UTxOs of ages between 7 years to 10 years."
               },
               "range_10y_inf": {
                "type": "number",
                "description": "Realized price of UTxOs of ages over 10 years."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0d_1d": 64415.03,
            "range_1d_1w": 63043.48,
            "range_1w_1m": 69814.43,
            "range_1m_3m": 75530.77,
            "range_3m_6m": 80884.03,
            "range_6m_12m": 102541.83,
            "range_12m_18m": 96942.28,
            "range_18m_2y": 74288.37,
            "range_2y_3y": 49186.6,
            "range_3y_5y": 31931.09,
            "range_5y_7y": 27490.85,
            "range_7y_10y": 6106.63,
            "range_10y_inf": 112.86542965
           },
           {
            "date": "2026-06-13",
            "range_0d_1d": 64073.03,
            "range_1d_1w": 62945.27,
            "range_1w_1m": 70555.69,
            "range_1m_3m": 75312.35,
            "range_3m_6m": 81064.51,
            "range_6m_12m": 102607.56,
            "range_12m_18m": 96965.83,
            "range_18m_2y": 74106.39,
            "range_2y_3y": 48816.49,
            "range_3y_5y": 31993.35,
            "range_5y_7y": 27465.64,
            "range_7y_10y": 6102.06,
            "range_10y_inf": 112.7471085
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/mpi": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Miners' Position Index (MPI)",
    "description": "MPI(Miners’ Position Index) is a z score of a specific period. The period range must be 2 days or more and if not, it will return an error. `mpi` is an index to understand miners’ behavior by examining the total outflow of miners. It highlights periods where the value of Bitcoin’s outflow by miners on a daily basis has historically been extremely high or low. MPI values above 2 indicate that most of the miners are selling Bitcoin. MPI values under 0 indicate that there is less selling pressure by miners.  \n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/flow-indicators/miners-position-index)__\n\n**📖 Data Guide:** [Miners' Position Index (MPI)](/data-guide/miner/miners-position-index) — definition, interpretation, and chart examples.",
    "operationId": "getMPI",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/mpi?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/mpi?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/mpi?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/mpi?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/mpi?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Miners' Position Index",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "mpi"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "mpi": {
                "type": "number",
                "description": "MPI(Miners’ position index) is the total miner outflow usd divided by MA 365 total miner outflow usd."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "mpi": -1.31726437
           },
           {
            "date": "2026-06-13",
            "mpi": -1.1791794
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/exchange-shutdown-index": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Exchange Shutdown Index",
    "description": "Stay Ahead of Exchange Hacks. See hacks as they happen by identifying sudden increases and become zero in exchange outflows and hedge against potential risk.",
    "operationId": "getExchangeShutdownIndex",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-shutdown-index?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-shutdown-index?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-shutdown-index?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-shutdown-index?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-shutdown-index?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Exchange Shutdown Index",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "is_shutdown"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "is_shutdown": {
                "type": "number",
                "description": "If the total BTC outflow amount of exchange is zero at each time unit, returns 1. Otherwise, it returns 0."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "is_shutdown": 0
           },
           {
            "date": "2026-06-13",
            "is_shutdown": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/exchange-whale-ratio": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Exchange Whale Ratio",
    "description": "Find Whale Focused Exchanges with Top 10 Inflows. Looking at the relative size of the top 10 inflows to total inflows, it is possible to discover which exchanges whales use. For example, as Gemini has mostly whales users, it is possible for the price to rise or fall dramatically. This has potential risks, but also the possibility of arbitrage.\n\n**📖 Data Guide:** [Exchange Whale Ratio](/data-guide/market/exchange-whale-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getExchangeWhaleRatio",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-whale-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-whale-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-whale-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-whale-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-whale-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The total BTC amount of top 10 inflow amount divided by the total BTC amount flowed into exchange",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "exchange_whale_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "exchange_whale_ratio": {
                "type": "number",
                "description": "The total BTC amount of top 10 transactions (in terms of total BTC sent) divided by the total BTC amount flowing into exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "exchange_whale_ratio": 0.46634315
           },
           {
            "date": "2026-06-13",
            "exchange_whale_ratio": 0.43023722
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/fund-flow-ratio": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Fund Flow Ratio",
    "description": "Fund Flow Ratio provides the amount of bitcoins that exchanges occupy among the bitcoins sent underlying the Bitcoin network. Knowing the amount of fund currently involved in trading can help you understand market volatility.\n\n**📖 Data Guide:** [Fund Flow Ratio](/data-guide/exchange/fund-flow-ratio) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetFundFlowRatio",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/fund-flow-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/fund-flow-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/fund-flow-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/fund-flow-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/fund-flow-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The total BTC inflow and outflow of exchange divided by the total BTC transferred on the Bitcoin network.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fund_flow_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "fund_flow_ratio": {
                "type": "number",
                "description": "The total BTC amount flowing into or out of exchange divided by the total BTC amount transferred on the whole Bitcoin network."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fund_flow_ratio": 0.01422171
           },
           {
            "date": "2026-06-13",
            "fund_flow_ratio": 0.01105035
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/stablecoins-ratio": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Stablecoins Ratio",
    "description": "BTC reserve divided by all stablecoins reserve held by an exchange. This usually indicates potential sell pressure. Supported exchanges are determined by the concurrent validity of both BTC and Stablecoins (for at least 1 token).\n\n<br/>\n\n> **Note:**  This endpoint supports a maximum of 1,000 entries per request.\n\n<br/>\n\n**📖 Data Guide:** [Stablecoins Ratio](/data-guide/stablecoin/stablecoins-ratio) — definition, interpretation, and chart examples.",
    "operationId": "BTCgetStablecoinsRatio",
    "parameters": [
     {
      "description": "An exchange that supports both BTC and Stablecoins. See here [for BTC](#tag/BTC-Exchange-Flows) and [for Stablecoins](#tag/Stablecoin-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 1000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 1000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/stablecoins-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/stablecoins-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/stablecoins-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/stablecoins-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/stablecoins-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Total BTC reserve divided by all stablecoins reserve held by an exchange.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "stablecoins_ratio",
               "stablecoins_ratio_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "stablecoins_ratio": {
                "type": "number",
                "description": "Total BTC reserve divided by all stablecoins reserve held by an exchange."
               },
               "stablecoins_ratio_usd": {
                "type": "number",
                "description": "Total BTC reserve in USD divided by all stablecoins reserve held by an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "stablecoins_ratio": 0.0000079,
            "stablecoins_ratio_usd": 0.51929221
           },
           {
            "date": "2026-06-13",
            "stablecoins_ratio": 0.00000792,
            "stablecoins_ratio_usd": 0.50960413
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/exchange-inflow-age-distribution": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Exchange Inflow Age Distribution",
    "description": "Exchange Inflow Age Distribution is a set of active inflow to exchanges with age bands. This indicator summarizes the behaviors of long-term or short-term holders flowed into the exchanges. We provide the distribution values in native and percent values.\n\n**📖 Data Guide:** [Exchange Inflow - Spent Output Age Bands](/data-guide/exchange/exchange-inflow-spent-output-age-bands) — definition, interpretation, and chart examples.",
    "operationId": "getExchangeInflowAgeDistribution",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-age-distribution?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-age-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-age-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-age-distribution?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-age-distribution?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "exchange-inflow-age-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0d_1d",
               "range_1d_1w",
               "range_1w_1m",
               "range_1m_3m",
               "range_3m_6m",
               "range_6m_12m",
               "range_12m_18m",
               "range_18m_2y",
               "range_2y_3y",
               "range_3y_5y",
               "range_5y_7y",
               "range_7y_10y",
               "range_10y_inf",
               "range_0d_1d_percent",
               "range_1d_1w_percent",
               "range_1w_1m_percent",
               "range_1m_3m_percent",
               "range_3m_6m_percent",
               "range_6m_12m_percent",
               "range_12m_18m_percent",
               "range_18m_2y_percent",
               "range_2y_3y_percent",
               "range_3y_5y_percent",
               "range_5y_7y_percent",
               "range_7y_10y_percent",
               "range_10y_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0d_1d": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 0 day to 1 day as inflow to exchanges."
               },
               "range_1d_1w": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 1 day to 1 week as inflow to exchanges."
               },
               "range_1w_1m": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 1 week to 1 month as inflow to exchanges."
               },
               "range_1m_3m": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 1 month to 3 months as inflow to exchanges."
               },
               "range_3m_6m": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 3 months to 6 months as inflow to exchanges."
               },
               "range_6m_12m": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 6 months to 12 months as inflow to exchanges."
               },
               "range_12m_18m": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 12 months to 18 months as inflow to exchanges."
               },
               "range_18m_2y": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 18 months to 2 years as inflow to exchanges."
               },
               "range_2y_3y": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 2 years to 3 years as inflow to exchanges."
               },
               "range_3y_5y": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 3 years to 5 years as inflow to exchanges."
               },
               "range_5y_7y": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 5 years to 7 years as inflow to exchanges."
               },
               "range_7y_10y": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages between 7 years to 10 years as inflow to exchanges."
               },
               "range_10y_inf": {
                "type": "number",
                "description": "Sum of destroyed UTxOs of ages over 10 years as inflow to exchanges."
               },
               "range_0d_1d_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 0 day to 1 day as inflow to exchanges."
               },
               "range_1d_1w_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 1 day to 1 week as inflow to exchanges."
               },
               "range_1w_1m_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 1 week to 1 month as inflow to exchanges."
               },
               "range_1m_3m_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 1 month to 3 months as inflow to exchanges."
               },
               "range_3m_6m_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 3 months to 6 months as inflow to exchanges."
               },
               "range_6m_12m_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 6 months to 12 months as inflow to exchanges."
               },
               "range_12m_18m_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 12 months to 18 months as inflow to exchanges."
               },
               "range_18m_2y_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 18 months to 2 years as inflow to exchanges."
               },
               "range_2y_3y_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 2 years to 3 years as inflow to exchanges."
               },
               "range_3y_5y_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 3 years to 5 years as inflow to exchanges."
               },
               "range_5y_7y_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 5 years to 7 years as inflow to exchanges."
               },
               "range_7y_10y_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages between 7 years to 10 years as inflow to exchanges."
               },
               "range_10y_inf_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs of ages over 10 years as inflow to exchanges."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0d_1d": 2358.2,
            "range_1d_1w": 0.01561396,
            "range_1w_1m": 0.00268924,
            "range_1m_3m": 0,
            "range_3m_6m": 0,
            "range_6m_12m": 0,
            "range_12m_18m": 0,
            "range_18m_2y": 0,
            "range_2y_3y": 0,
            "range_3y_5y": 0,
            "range_5y_7y": 0,
            "range_7y_10y": 0,
            "range_10y_inf": 0,
            "range_0d_1d_percent": 99.99922385,
            "range_1d_1w_percent": 0.00066211,
            "range_1w_1m_percent": 0.00011404,
            "range_1m_3m_percent": 0,
            "range_3m_6m_percent": 0,
            "range_6m_12m_percent": 0,
            "range_12m_18m_percent": 0,
            "range_18m_2y_percent": 0,
            "range_2y_3y_percent": 0,
            "range_3y_5y_percent": 0,
            "range_5y_7y_percent": 0,
            "range_7y_10y_percent": 0,
            "range_10y_inf_percent": 0
           },
           {
            "date": "2026-06-13",
            "range_0d_1d": 2378.77,
            "range_1d_1w": 0.0401892,
            "range_1w_1m": 0.00770678,
            "range_1m_3m": 0,
            "range_3m_6m": 0,
            "range_6m_12m": 0,
            "range_12m_18m": 0.00001,
            "range_18m_2y": 0,
            "range_2y_3y": 0,
            "range_3y_5y": 0,
            "range_5y_7y": 0,
            "range_7y_10y": 0,
            "range_10y_inf": 0,
            "range_0d_1d_percent": 99.99798615,
            "range_1d_1w_percent": 0.00168946,
            "range_1w_1m_percent": 0.00032397,
            "range_1m_3m_percent": 0,
            "range_3m_6m_percent": 0,
            "range_6m_12m_percent": 0,
            "range_12m_18m_percent": 4.2e-7,
            "range_18m_2y_percent": 0,
            "range_2y_3y_percent": 0,
            "range_3y_5y_percent": 0,
            "range_5y_7y_percent": 0,
            "range_7y_10y_percent": 0,
            "range_10y_inf_percent": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/exchange-inflow-supply-distribution": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Exchange Inflow Supply Distribution",
    "description": "Exchange Inflow Supply Distribution is a set of active inflow to exchanges with balance (supply) bands. This indicator summarizes the behaviors of whales or retails flowed into the exchanges, separated by amount of coins they hold along with price actions. We provide the distribution values in native and percent values.\n\n**📖 Data Guide:** [Exchange Inflow - Spent Output Value Bands](/data-guide/exchange/exchange-inflow-spent-output-value-bands) — definition, interpretation, and chart examples.",
    "operationId": "getExchangeInflowSupplyDistribution",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-supply-distribution?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-supply-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-supply-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-supply-distribution?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-supply-distribution?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "exchange-inflow-supply-distribution",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_0_001",
               "range_001_01",
               "range_01_1",
               "range_1_10",
               "range_10_100",
               "range_100_1k",
               "range_1k_10k",
               "range_10k_inf",
               "range_0_001_percent",
               "range_001_01_percent",
               "range_01_1_percent",
               "range_1_10_percent",
               "range_10_100_percent",
               "range_100_1k_percent",
               "range_1k_10k_percent",
               "range_10k_inf_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "range_0_001": {
                "type": "number",
                "description": "Sum of destroyed UTxOs with balance between 0 and 0.01 as inflow to exchanges."
               },
               "range_001_01": {
                "type": "number",
                "description": "Sum of destroyed UTxOs with balance between 0.01 and 0.1 as inflow to exchanges."
               },
               "range_01_1": {
                "type": "number",
                "description": "Sum of destroyed UTxOs with balance between 0.1 and 1 as inflow to exchanges."
               },
               "range_1_10": {
                "type": "number",
                "description": "Sum of destroyed UTxOs with balance between 1 and 10 as inflow to exchanges."
               },
               "range_10_100": {
                "type": "number",
                "description": "Sum of destroyed UTxOs with balance between 10 and 100 as inflow to exchanges."
               },
               "range_100_1k": {
                "type": "number",
                "description": "Sum of destroyed UTxOs with balance between 100 and 1k as inflow to exchanges."
               },
               "range_1k_10k": {
                "type": "number",
                "description": "Sum of destroyed UTxOs with balance between 1k and 10k as inflow to exchanges."
               },
               "range_10k_inf": {
                "type": "number",
                "description": "Sum of destroyed UTxOs with balance over 10k as inflow to exchanges."
               },
               "range_0_001_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs with balance between 0 and 0.01 as inflow to exchanges."
               },
               "range_001_01_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs with balance between 0.01 and 0.1 as inflow to exchanges."
               },
               "range_01_1_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs with balance between 0.1 and 1 as inflow to exchanges."
               },
               "range_1_10_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs with balance between 1 and 10 as inflow to exchanges."
               },
               "range_10_100_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs with balance between 10 and 100 as inflow to exchanges."
               },
               "range_100_1k_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs with balance between 100 and 1k as inflow to exchanges."
               },
               "range_1k_10k_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs with balance between 1k and 10k as inflow to exchanges."
               },
               "range_10k_inf_percent": {
                "type": "number",
                "description": "Percent sum of destroyed UTxOs with balance over 10k as inflow to exchanges."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "range_0_001": 5.19865717,
            "range_001_01": 52.99832937,
            "range_01_1": 144.44736797,
            "range_1_10": 631.35799198,
            "range_10_100": 1172.29,
            "range_100_1k": 351.92436035,
            "range_1k_10k": 0,
            "range_10k_inf": 0,
            "range_0_001_percent": 0.22044855,
            "range_001_01_percent": 2.24738895,
            "range_01_1_percent": 6.12527643,
            "range_1_10_percent": 26.77267356,
            "range_10_100_percent": 49.71089462,
            "range_100_1k_percent": 14.92331789,
            "range_1k_10k_percent": 0,
            "range_10k_inf_percent": 0
           },
           {
            "date": "2026-06-13",
            "range_0_001": 6.05931847,
            "range_001_01": 60.7788652,
            "range_01_1": 153.37635537,
            "range_1_10": 686.0141073,
            "range_10_100": 1364.66,
            "range_100_1k": 107.93309323,
            "range_1k_10k": 0,
            "range_10k_inf": 0,
            "range_0_001_percent": 0.25471939,
            "range_001_01_percent": 2.55499948,
            "range_01_1_percent": 6.44757856,
            "range_1_10_percent": 28.8384076,
            "range_10_100_percent": 57.36704347,
            "range_100_1k_percent": 4.5372515,
            "range_1k_10k_percent": 0,
            "range_10k_inf_percent": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/exchange-inflow-cdd": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Exchange Inflow CDD (Coin Days Destroyed)",
    "description": "Exchange Inflow CDD is a subset of Coin Days Destroyed (CDD) where coins are destroyed by flowing into exchanges. This indicator is noise-removed version of CDD with respect to exchange dumping signal.\n\n**📖 Data Guide:** [Exchange Inflow CDD](/data-guide/exchange/exchange-inflow-cdd) — definition, interpretation, and chart examples.",
    "operationId": "getExchangeInflowCDD",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-cdd?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-cdd?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-cdd?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-cdd?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-inflow-cdd?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "exchange-inflow-cdd",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "inflow_cdd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "inflow_cdd": {
                "type": "number",
                "description": "Coin days destroyed by flowing into exchanges."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "inflow_cdd": 183.66497118
           },
           {
            "date": "2026-06-13",
            "inflow_cdd": 208.6293022
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/exchange-supply-ratio": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Exchange Supply Ratio",
    "description": "Exchange Supply Ratio is calculated as exchange reserve divided by total supply. The metric measures how much tokens are reserved in the exchange relative to total supply of the token.\n\n**📖 Data Guide:** [Exchange Supply Ratio](/data-guide/exchange/exchange-supply-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getExchangeSupplyRatio",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Ratio of reserved token in the exchange relative to total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "supply_ratio": {
                "type": "number",
                "description": "Ratio of reserved token in the exchange relative to total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "exchange_supply_ratio": 0.03312059
           },
           {
            "date": "2026-06-13",
            "exchange_supply_ratio": 0.03319458
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/flow-indicator/miner-supply-ratio": {
   "get": {
    "tags": [
     "BTC Flow Indicator"
    ],
    "summary": "Miner Supply Ratio",
    "description": "Miner Supply Ratio is calculated as miner reserve divided by total supply. The metric measures how much tokens are reserved in the miner relative to total supply of the token.\n\n**📖 Data Guide:** [Miner Supply Ratio](/data-guide/miner/miner-supply-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getMinerSupplyRatio",
    "parameters": [
     {
      "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "f2pool"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/flow-indicator/miner-supply-ratio?miner=f2pool&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/flow-indicator/miner-supply-ratio?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/flow-indicator/miner-supply-ratio?miner=f2pool&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/flow-indicator/miner-supply-ratio?miner=f2pool&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/flow-indicator/miner-supply-ratio?miner=f2pool&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Ratio of reserved token in the miner relative to total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "supply_ratio": {
                "type": "number",
                "description": "Ratio of reserved token in the miner relative to total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "miner_supply_ratio": 0.0002199
           },
           {
            "date": "2026-06-13",
            "miner_supply_ratio": 0.0002199
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/mempool/stats-by-relative-fee": {
   "get": {
    "tags": [
     "BTC Mempool Statistics"
    ],
    "summary": "BTC Memory pool Statistics by relative fee range",
    "description": "Mempool Statistics contains three metrics related to transactions waiting to be confirmed. You can see metrics for the number of transactions, the total amount of fees, and the aggregate size in bytes of transactions. Each metric was calculated based on fee level.\n\n<br/>\n\n### Supported Metrics\n| Metric Type  |   Description   |\n|--------------|--------------------------------------------------------|\n| `tx_count*`  | The total number of unconfirmed transactions (Number)  |\n| `total_size` | The aggregated size in bytes of transactions  (Megabyte)|\n| `total_fee`  | The total fee of unconfirmed transactions    (BTC)     |\n\n> (*) Default\n<br/>\n\n### Supported Windows\n\n| Supported Windows |\n|-------------------|\n| `hour`, `day*`    |\n\n> (*) Default",
    "operationId": "getBTCMempoolStatsByRelativeFee",
    "parameters": [
     {
      "description": "A metric type derived from statistics. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "metric_type",
      "required": false,
      "schema": {
       "type": "string",
       "default": "tx_count"
      },
      "style": "form",
      "example": "tx_count"
     },
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/mempool/stats-by-relative-fee?window=day&metric_type=tx_count&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/mempool/stats-by-relative-fee?window=day&metric_type=tx_count&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/mempool/stats-by-relative-fee?window=day&metric_type=tx_count&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/mempool/stats-by-relative-fee?window=day&metric_type=tx_count&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/mempool/stats-by-relative-fee?window=day&metric_type=tx_count&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "BTC Mempool Stats by relative fee",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "date",
               "metric_type",
               "metric_unit",
               "relative_fee_range_a_b"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "metric_type": {
                "type": "string",
                "description": "metric type."
               },
               "metric_unit": {
                "type": "string",
                "description": "an unit of the retrieved metric."
               },
               "relative_fee_range_0_1": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 0 ~ 1 (sat.vByte)."
               },
               "relative_fee_range_1_2": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 1 ~ 2 (sat.vByte)."
               },
               "relative_fee_range_2_3": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 2 ~ 3 (sat.vByte)."
               },
               "relative_fee_range_3_4": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 3 ~ 4 (sat.vByte)."
               },
               "relative_fee_range_4_5": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 4 ~ 5 (sat.vByte)."
               },
               "relative_fee_range_5_6": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 5 ~ 6 (sat.vByte)."
               },
               "relative_fee_range_6_7": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 6 ~ 7 (sat.vByte)."
               },
               "relative_fee_range_7_8": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 7 ~ 8 (sat.vByte)."
               },
               "relative_fee_range_8_10": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 8 ~ 10 (sat.vByte)."
               },
               "relative_fee_range_10_12": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 10 ~ 12 (sat.vByte)."
               },
               "relative_fee_range_12_14": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 12 ~ 14 (sat.vByte)."
               },
               "relative_fee_range_14_17": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 14 ~ 17 (sat.vByte)."
               },
               "relative_fee_range_17_20": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 17 ~ 20 (sat.vByte)."
               },
               "relative_fee_range_20_25": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 20 ~ 25 (sat.vByte)."
               },
               "relative_fee_range_25_30": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 25 ~ 30 (sat.vByte)."
               },
               "relative_fee_range_30_40": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 30 ~ 40 (sat.vByte)."
               },
               "relative_fee_range_40_50": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 40 ~ 50 (sat.vByte)."
               },
               "relative_fee_range_50_60": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 50 ~ 60 (sat.vByte)."
               },
               "relative_fee_range_60_70": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 60 ~ 70 (sat.vByte)."
               },
               "relative_fee_range_70_80": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 70 ~ 80 (sat.vByte)."
               },
               "relative_fee_range_80_100": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 80 ~ 100 (sat.vByte)."
               },
               "relative_fee_range_100_120": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 100 ~ 120 (sat.vByte)."
               },
               "relative_fee_range_120_140": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 120 ~ 140 (sat.vByte)."
               },
               "relative_fee_range_140_170": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 140 ~ 170 (sat.vByte)."
               },
               "relative_fee_range_170_200": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 170 ~ 200 (sat.vByte)."
               },
               "relative_fee_range_200_250": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 200 ~ 250 (sat.vByte)."
               },
               "relative_fee_range_250_300": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 250 ~ 300 (sat.vByte)."
               },
               "relative_fee_range_300_400": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 300 ~ 400 (sat.vByte)."
               },
               "relative_fee_range_400_500": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 400 ~ 500 (sat.vByte)."
               },
               "relative_fee_range_500_600": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 500 ~ 600 (sat.vByte)."
               },
               "relative_fee_range_600_700": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 600 ~ 700 (sat.vByte)."
               },
               "relative_fee_range_700_800": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 700 ~ 800 (sat.vByte)."
               },
               "relative_fee_range_800_1000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 800 ~ 1000 (sat.vByte)."
               },
               "relative_fee_range_1000_1200": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 1000 ~ 1200 (sat.vByte)."
               },
               "relative_fee_range_1200_1400": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 1200 ~ 1400 (sat.vByte)."
               },
               "relative_fee_range_1400_1700": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 1400 ~ 1700 (sat.vByte)."
               },
               "relative_fee_range_1700_2000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 1700 ~ 2000 (sat.vByte)."
               },
               "relative_fee_range_2000_2500": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 2000 ~ 2500 (sat.vByte)."
               },
               "relative_fee_range_2500_3000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 2500 ~ 3000 (sat.vByte)."
               },
               "relative_fee_range_3000_4000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 3000 ~ 4000 (sat.vByte)."
               },
               "relative_fee_range_4000_5000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 4000 ~ 5000 (sat.vByte)."
               },
               "relative_fee_range_5000_6000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 5000 ~ 6000 (sat.vByte)."
               },
               "relative_fee_range_6000_7000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 6000 ~ 7000 (sat.vByte)."
               },
               "relative_fee_range_7000_8000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 7000 ~ 8000 (sat.vByte)."
               },
               "relative_fee_range_8000_10000": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 8000 ~ 10000 (sat.vByte)."
               },
               "relative_fee_range_10000_inf": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions which are contained in Fee level 10000 ~ inf (sat.vByte)."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "metric_type": "tx_count",
            "metric_unit": "number",
            "result": [
             {
              "relative_fee_range_0_1": 99337,
              "relative_fee_range_1_2": 1568,
              "relative_fee_range_2_3": 359,
              "relative_fee_range_3_4": 231,
              "relative_fee_range_4_5": 84,
              "relative_fee_range_5_6": 64,
              "relative_fee_range_6_7": 15,
              "relative_fee_range_7_8": 27,
              "relative_fee_range_8_10": 84,
              "relative_fee_range_10_12": 48,
              "relative_fee_range_12_14": 5,
              "relative_fee_range_14_17": 28,
              "relative_fee_range_17_20": 2,
              "relative_fee_range_20_25": 4,
              "relative_fee_range_25_30": 2,
              "relative_fee_range_30_40": 1,
              "relative_fee_range_40_50": 0,
              "relative_fee_range_50_60": 0,
              "relative_fee_range_60_70": 0,
              "relative_fee_range_70_80": 0,
              "relative_fee_range_80_100": 0,
              "relative_fee_range_100_120": 1,
              "relative_fee_range_120_140": 0,
              "relative_fee_range_140_170": 0,
              "relative_fee_range_170_200": 0,
              "relative_fee_range_200_250": 0,
              "relative_fee_range_250_300": 0,
              "relative_fee_range_300_400": 0,
              "relative_fee_range_400_500": 0,
              "relative_fee_range_500_600": 0,
              "relative_fee_range_600_700": 0,
              "relative_fee_range_700_800": 0,
              "relative_fee_range_800_1000": 0,
              "relative_fee_range_1000_1200": 0,
              "relative_fee_range_1200_1400": 0,
              "relative_fee_range_1400_1700": 0,
              "relative_fee_range_1700_2000": 0,
              "relative_fee_range_2000_2500": 0,
              "relative_fee_range_2500_3000": 0,
              "relative_fee_range_3000_4000": 0,
              "relative_fee_range_4000_5000": 0,
              "relative_fee_range_5000_6000": 0,
              "relative_fee_range_6000_7000": 0,
              "relative_fee_range_7000_8000": 0,
              "relative_fee_range_8000_10000": 0,
              "relative_fee_range_10000_inf": 0
             }
            ]
           },
           {
            "date": "2026-06-14",
            "metric_type": "tx_count",
            "metric_unit": "number",
            "result": [
             {
              "relative_fee_range_0_1": 97880.58333333333,
              "relative_fee_range_1_2": 2166.5833333333335,
              "relative_fee_range_2_3": 552.5833333333334,
              "relative_fee_range_3_4": 453.0416666666667,
              "relative_fee_range_4_5": 195.875,
              "relative_fee_range_5_6": 118,
              "relative_fee_range_6_7": 62.541666666666664,
              "relative_fee_range_7_8": 30.916666666666668,
              "relative_fee_range_8_10": 37.666666666666664,
              "relative_fee_range_10_12": 42.458333333333336,
              "relative_fee_range_12_14": 17.291666666666668,
              "relative_fee_range_14_17": 16.25,
              "relative_fee_range_17_20": 10.125,
              "relative_fee_range_20_25": 16.583333333333332,
              "relative_fee_range_25_30": 4,
              "relative_fee_range_30_40": 9.208333333333334,
              "relative_fee_range_40_50": 3.2083333333333335,
              "relative_fee_range_50_60": 2.375,
              "relative_fee_range_60_70": 0.9583333333333334,
              "relative_fee_range_70_80": 2.125,
              "relative_fee_range_80_100": 0.7083333333333334,
              "relative_fee_range_100_120": 0.9583333333333334,
              "relative_fee_range_120_140": 0.375,
              "relative_fee_range_140_170": 0.041666666666666664,
              "relative_fee_range_170_200": 0,
              "relative_fee_range_200_250": 0.041666666666666664,
              "relative_fee_range_250_300": 0.08333333333333333,
              "relative_fee_range_300_400": 0.16666666666666666,
              "relative_fee_range_400_500": 0.041666666666666664,
              "relative_fee_range_500_600": 0.041666666666666664,
              "relative_fee_range_600_700": 0,
              "relative_fee_range_700_800": 0,
              "relative_fee_range_800_1000": 0,
              "relative_fee_range_1000_1200": 0.041666666666666664,
              "relative_fee_range_1200_1400": 0,
              "relative_fee_range_1400_1700": 0,
              "relative_fee_range_1700_2000": 0,
              "relative_fee_range_2000_2500": 0,
              "relative_fee_range_2500_3000": 0,
              "relative_fee_range_3000_4000": 0,
              "relative_fee_range_4000_5000": 0,
              "relative_fee_range_5000_6000": 0,
              "relative_fee_range_6000_7000": 0,
              "relative_fee_range_7000_8000": 0,
              "relative_fee_range_8000_10000": 0,
              "relative_fee_range_10000_inf": 0
             }
            ]
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/mempool/stats-in-total": {
   "get": {
    "tags": [
     "BTC Mempool Statistics"
    ],
    "summary": "BTC Memory pool Statistics (Sum)",
    "description": "Mempool Statistics contains three metrics related to transactions waiting to be confirmed. You can see metrics for the number of transactions, the total amount of fees, and the aggregate size in bytes of transactions.\n\n<br/>\n\n### Supported Metrics\n| Metric Type  |   Description   |\n|--------------|--------------------------------------------------------------------------------------|\n| `tx_count*`  | The average number of unconfirmed transactions in selected time range (Number)       |\n| `total_size` | The average aggregate size in bytes of transactions in selected time range (Megabyte)|\n| `total_fee`  | The average total fee of unconfirmed transactions in selected time range (BTC)       |\n\n> (*) Default\n<br/>\n\n### Supported Windows\n\n| Supported Windows |\n|-------------------|\n| `hour`, `day*`    |\n\n> (*) Default",
    "operationId": "getBTCMempoolStatsInTotal",
    "parameters": [
     {
      "description": "A metric type derived from statistics. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "metric_type",
      "required": false,
      "schema": {
       "type": "string",
       "default": "tx_count"
      },
      "style": "form",
      "example": "tx_count"
     },
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/mempool/stats-in-total?window=day&metric_type=tx_count&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/mempool/stats-in-total?window=day&metric_type=tx_count&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/mempool/stats-in-total?window=day&metric_type=tx_count&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/mempool/stats-in-total?window=day&metric_type=tx_count&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/mempool/stats-in-total?window=day&metric_type=tx_count&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "BTC Mempool Stats (Sum)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "date",
               "metric_type",
               "metric_unit",
               "result"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "metric_type": {
                "type": "string",
                "description": "metric type."
               },
               "metric_unit": {
                "type": "string",
                "description": "an unit of the retrieved metric."
               },
               "result": {
                "type": "number",
                "description": "calculated metrics from unconfirmed transactions in Memory pool."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "metric_type": "tx_count",
            "metric_unit": "number",
            "result": "101860.000000000000"
           },
           {
            "date": "2026-06-14",
            "metric_type": "tx_count",
            "metric_unit": "number",
            "result": "101624.875000000000"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/lightning/stats-in-total": {
   "get": {
    "tags": [
     "BTC Lightning Statistics"
    ],
    "summary": "BTC Lightning Statistics",
    "description": "Lightning Network Statistics contains various metrics which are calculated from lightning network.\n\n<br/>\n\n### Supported Stats\n| Stas                             | Description                                            |\n|----------------------------------|--------------------------------------------------------|\n| `network_capacity`               | The total network capacity (sum of balances available across all lightning payment channels) (BTC)  |\n| `network_capacity_usd`           | The total network capacity (sum of balances available across all lightning payment channels) (USD)  |\n| `capacity_per_channel_mean`      | The average channel capacity (BTC)                                                                  |\n| `capacity_per_channel_mean_usd`  | The average channel capacity (USD)                                                                  |\n| `capacity_per_node_mean`         | The average node capacity (BTC)                                                                     |\n| `capacity_per_node_mean_usd`     | The average node capacity (USD)                                                                     |\n| `number_of_node`                 | The total number of available nodes (Number)                                                        |\n| `number_of_channel`              | The total number of available payment channels  (Number)                                            |\n| `channel_per_node_mean`          | The average number of channels per node    (Number)                                                 |\n| `node_age_days`                  | The average day of duration of nodes (Number)                                                       |\n| `channel_age_days`               | The average day of duration of channels (Number)                                                    |\n| `base_fee_median`                | The median base fee of transactions (Sat)                                                           |\n| `base_fee_median_usd`            | The median base fee of transactions (USD)                                                           |\n| `fee_rate_median`                | The median fee rates of transactions (Sat)                                                          |\n| `fee_rate_median_usd`            | The median fee rates of transactions (USD)                                                          |\n\n<br/>\n\n### Supported Windows\n\n| Supported Windows |\n|-------------------|\n| `hour`, `day*`    |\n\n> (*) Default",
    "operationId": "getBTCLightningNetworkStatsInTotal",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/lightning/stats-in-total?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/lightning/stats-in-total?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/lightning/stats-in-total?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/lightning/stats-in-total?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/lightning/stats-in-total?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "BTC Lightning Network Stats",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "date",
               "network_capacity",
               "network_capacity_usd",
               "capacity_per_channel_mean",
               "capacity_per_channel_mean_usd",
               "capacity_per_node_mean",
               "capacity_per_node_mean_usd",
               "number_of_node",
               "number_of_channel",
               "channel_per_node_mean",
               "node_age_days",
               "channel_age_days",
               "base_fee_median",
               "base_fee_median_usd",
               "fee_rate_median",
               "fee_rate_median_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "network_capacity": {
                "type": "number",
                "description": "The total network capacity (sum of balances available across all lightning payment channels) (BTC)"
               },
               "network_capacity_usd": {
                "type": "number",
                "description": "The total network capacity (sum of balances available across all lightning payment channels) (USD)"
               },
               "capacity_per_channel_mean": {
                "type": "number",
                "description": "The average channel capacity (BTC)"
               },
               "capacity_per_channel_mean_usd": {
                "type": "number",
                "description": "The average channel capacity (USD)"
               },
               "capacity_per_node_mean": {
                "type": "number",
                "description": "The average node capacity (BTC)"
               },
               "capacity_per_node_mean_usd": {
                "type": "number",
                "description": "The average node capacity (USD)"
               },
               "number_of_node": {
                "type": "integer",
                "description": "The total number of available nodes (Number)"
               },
               "number_of_channel": {
                "type": "integer",
                "description": "The total number of available payment channels  (Number)"
               },
               "channel_per_node_mean": {
                "type": "number",
                "description": "The average number of channels per node    (Number)"
               },
               "node_age_days": {
                "type": "number",
                "description": "The average day of duration of nodes (Number)"
               },
               "channel_age_days": {
                "type": "number",
                "description": "The average day of duration of channels (Number)"
               },
               "base_fee_median": {
                "type": "number",
                "description": "The median base fee of transactions (Sat)"
               },
               "base_fee_median_usd": {
                "type": "number",
                "description": "The median base fee of transactions (USD)"
               },
               "fee_rate_median": {
                "type": "number",
                "description": "The median fee rates of transactions (Sat)"
               },
               "fee_rate_median_usd": {
                "type": "number",
                "description": "The median fee rates of transactions (USD)"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "datetime": "2019-10-02",
            "metric_type": "tx_count",
            "metric_unit": "number",
            "result": {
             "network_capacity": null,
             "network_capacity_usd": null,
             "capacity_per_channel_mean": null,
             "capacity_per_channel_mean_usd": null,
             "capacity_per_node_mean": null,
             "capacity_per_node_mean_usd": null,
             "number_of_node": null,
             "number_of_channel": null,
             "channel_per_node_mean": null,
             "node_age_days": null,
             "channel_age_days": null,
             "base_fee_median": null,
             "base_fee_median_usd": null,
             "fee_rate_median": null,
             "fee_rate_median_usd": null
            }
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/miner-data/companies": {
   "get": {
    "tags": [
     "BTC Miner Data"
    ],
    "summary": "Companies",
    "operationId": "getCompanies",
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/miner-data/companies?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/miner-data/companies?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/miner-data/companies?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/miner-data/companies?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/miner-data/companies?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "description": "This endpoint returns BTC mining company data.\nCompany data consists of statistical metrics based on rewards and production data for each mining company.\n`coinbase_rewards`, The daily amount of Bitcoin mined directly from a coinbase transaction. And `coinbase_rewards` will only be added to `mara`.\n`other_mining_rewards`, The daily amount of Bitcoin received as payment from a mining pool. Tipically, mining pools pay miners with Bitcoin from a coinbase transaction.\n`total_rewards`, The daily sum of coinbase rewards and other mining rewards (in number of Bitcoin).\n`accumulated_monthly_rewards`, The daily running sum of total rewards in each month (in number of Bitcoin).\n`unique_txn`, The total number of Bitcoin transactions involving a mining reward.\n`active_address_count`, The number of addresses from a company that received a block reward each day.\n`reported_production`, The company's reported total monthly production (in number of Bitcoin).\n`report_accuracy`, The ratio of accumulated monthly rewards to reported production times 100. It represents the % of total reported production captured by On-chain transactions.\n`closing_usd`, The daily closing price of Bitcoin in USD.\n`total_daily_rewards_closing_usd`, Daily total rewards in USD using the closing usd price.\n`accumulated_monthly_rewards_closing_usd`, accumulated monthly rewards in usd using the closing usd price.\n| Name         |   Miner    |\n|--------------|--------------|\n| MARA         |   `mara`   |\n| RIOT         |   `riot`   |\n| CORE         |   `core`   |\n| HIVE         |   `hive`   |\n| CLSK         |   `clsk`   |\n| BITF         |   `bitf`   |\n| CIPHER       |   `cipher` |\n| WULF         |   `wulf`   |\n| IREN         |   `iren`   |",
    "parameters": [
     {
      "description": "A mining company from the table that we support. [See here](#tag/BTC-Miner-Data).",
      "explode": false,
      "in": "query",
      "name": "miner",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "mara"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "responses": {
     "200": {
      "description": "Company Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "data",
            "window"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "block_bytes",
               "coinbase_rewards",
               "other_mining_rewards",
               "total_rewards",
               "accumulated_monthly_rewards",
               "unique_txn",
               "active_address_count",
               "reported_production",
               "report_accuracy",
               "closing_usd",
               "total_daily_rewards_closing_usd",
               "accumulated_monthly_rewards_closing_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "coinbase_rewards": {
                "type": "number",
                "description": "The daily amount of Bitcoin mined directly from a coinbase transaction."
               },
               "other_mining_rewards": {
                "type": "number",
                "description": "The daily amount of Bitcoin received as payment from a mining pool. Tipically, mining pools pay miners with Bitcoin from a coinbase transaction."
               },
               "total_rewards": {
                "type": "number",
                "description": "The daily sum of coinbase_rewards and Other Mining Rewards (in number of Bitcoin)."
               },
               "accumulated_monthly_rewards": {
                "type": "number",
                "description": "The daily running sum of total_rewards in each month (in number of Bitcoin)."
               },
               "unique_txn": {
                "type": "number",
                "description": "The total number of Bitcoin transactions involving a mining reward."
               },
               "active_address_count": {
                "type": "number",
                "description": "The number of addresses from a company that received a block reward each day."
               },
               "reported_production": {
                "type": "number",
                "description": "The company's reported total monthly production (in number of Bitcoin)."
               },
               "report_accuracy": {
                "type": "number",
                "description": "The ratio of accumulated_monthly_rewards to reported_production times 100. It represents the % of total reported production captured by On-chain transactions."
               },
               "closing_usd": {
                "type": "number",
                "description": "The daily closing price of Bitcoin in USD."
               },
               "total_daily_rewards_closing_usd": {
                "type": "number",
                "description": "Daily total_rewards in USD using the closing_usd price."
               },
               "accumulated_monthly_rewards_closing_usd": {
                "type": "number",
                "description": "accumulated_monthly_rewards in USD using the closing_usd price."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "coinbase_rewards": 37.73277462,
            "other_mining_rewards": 1.55200496,
            "total_rewards": 39.28477958,
            "accumulated_monthly_rewards": 362.81675982,
            "unique_txn": 14,
            "active_address_count": 6,
            "reported_production": null,
            "report_accuracy": null,
            "closing_usd": 65720.78,
            "total_daily_rewards_closing_usd": 2581826.3,
            "accumulated_monthly_rewards_closing_usd": 23667976.77
           },
           {
            "date": "2026-06-13",
            "coinbase_rewards": 22.26597463,
            "other_mining_rewards": 1.55256467,
            "total_rewards": 23.8185393,
            "accumulated_monthly_rewards": 323.53198024,
            "unique_txn": 11,
            "active_address_count": 6,
            "reported_production": null,
            "report_accuracy": null,
            "closing_usd": 64587.31,
            "total_daily_rewards_closing_usd": 1538375.43,
            "accumulated_monthly_rewards_closing_usd": 21086150.48
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/status/entity-list": {
   "get": {
    "tags": [
     "Stablecoin Entity Status"
    ],
    "summary": "Entity List",
    "description": "This endpoint returns entity list to serve data.\nPlease note that `all_token` will return bad request for this endpoint.\nMake sure to use a specific stablecoin symbol.\nThe meaning of the `market_type` value of the exchange object is as follows.\nFor exchange objects, the `market_type` field tells whether the exchange is a spot exchange or a derivative exchange.\nEntities without a market type, such as miners or banks, will return 0 for `market_type`.\n|  Exchange Market Type  |  Description         |\n|------------------------|----------------------|\n|  0                     |  Undefined           |\n|  1                     |  Spot Exchange       |\n|  2                     |  Derivative Exchange |",
    "operationId": "getStablecoinEntityList",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "A type from the entity in exchange.",
      "explode": false,
      "in": "query",
      "name": "type",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "exchange"
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/status/entity-list?token=usdt_eth&type=exchange\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/status/entity-list?token=usdt_eth&type=exchange\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/status/entity-list?token=usdt_eth&type=exchange\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/status/entity-list?token=usdt_eth&type=exchange\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/status/entity-list?token=usdt_eth&type=exchange\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Entity list on a given type.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "type",
            "data"
           ],
           "properties": {
            "type": {
             "type": "string",
             "description": "Type of given entity list. This field is one of \"exchange\", \"miner\""
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "name",
               "symbol",
               "is_validated",
               "market_type"
              ],
              "properties": {
               "name": {
                "type": "string",
                "description": "The name of entity."
               },
               "symbol": {
                "type": "string",
                "description": "The name of calling symbol."
               },
               "is_validated": {
                "type": "integer",
                "description": "validated or in progress."
               },
               "market_type": {
                "type": "integer",
                "description": "Market type of entity."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "data": [
           {
            "name": "AAX",
            "symbol": "aax",
            "is_validated": 1,
            "market_type": 2,
            "is_spot": 0,
            "is_derivative": 1
           },
           {
            "name": "ABCC",
            "symbol": "abcc",
            "is_validated": 0,
            "market_type": 1,
            "is_spot": 1,
            "is_derivative": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/exchange-flows/reserve": {
   "get": {
    "tags": [
     "Stablecoin Exchange Flows"
    ],
    "summary": "Reserve",
    "description": "This endpoint returns the full historical on-chain balance of Stablecoin exchanges.\n\n**📖 Data Guide:** [Stablecoin Exchange Reserve](/data-guide/stablecoin/stablecoins-exchange-reserve) — definition, interpretation, and chart examples.",
    "operationId": "StablecoinGetReserve",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/Stablecoin-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/reserve?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/reserve?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/reserve?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/reserve?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/reserve?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of Stablecoin on a given exchange on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "reserve"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "reserve": {
                "type": "number",
                "description": "The amount of Stablecoin on a given exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "reserve": 39104829030.89
           },
           {
            "date": "2026-06-13",
            "reserve": 39103784431.86
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/exchange-flows/netflow": {
   "get": {
    "tags": [
     "Stablecoin Exchange Flows"
    ],
    "summary": "Netflow",
    "description": "The difference between coins flowing into exchanges and flowing out of exchanges. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.\n\n**📖 Data Guide:** [Stablecoin Exchange In/Outflow & Netflow](/data-guide/stablecoin/stablecoin-exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "StablecoinGetExchangeNetflow",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/Stablecoin-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/netflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/netflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/netflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/netflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/netflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "netflow_total",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "netflow_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "netflow_total": {
                "type": "number",
                "description": "The difference between coins flowing into/out of exchanges."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "netflow_total": 1044599.03
           },
           {
            "date": "2026-06-13",
            "netflow_total": 100965772.76
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/exchange-flows/inflow": {
   "get": {
    "tags": [
     "Stablecoin Exchange Flows"
    ],
    "summary": "Inflow",
    "description": "This endpoint returns the inflow of Stablecoin into exchange wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into exchange wallets on a given day.\n\n**📖 Data Guide:** [Stablecoin Exchange In/Outflow & Netflow](/data-guide/stablecoin/stablecoin-exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "StablecoinGetInflow",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/Stablecoin-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/inflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/inflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/inflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/inflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/inflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "inflow_total, inflow_top10, inflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "inflow_total",
               "inflow_top10",
               "inflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "inflow_total": {
                "type": "number",
                "description": "The total amount of Stablecoin that transferred to the exchange."
               },
               "inflow_top10": {
                "type": "number",
                "description": "The total Stablecoin amount of top 10 transactions (in terms of total tokens sent) flowing out of exchange wallets for every day that the exchange wallets we track have been live on the blockchain."
               },
               "inflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "inflow_total": 194897235.79,
            "inflow_top10": 409970.7,
            "inflow_mean": 50622.66,
            "inflow_mean_ma7": 90280.36
           },
           {
            "date": "2026-06-13",
            "inflow_total": 246747218.93,
            "inflow_top10": 574258.33,
            "inflow_mean": 60094.31,
            "inflow_mean_ma7": 92138.72
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/exchange-flows/outflow": {
   "get": {
    "tags": [
     "Stablecoin Exchange Flows"
    ],
    "summary": "Outflow",
    "description": "This endpoint returns the outflow of Stablecoin into exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing into exchange wallets on a given day.\n\n**📖 Data Guide:** [Stablecoin Exchange In/Outflow & Netflow](/data-guide/stablecoin/stablecoin-exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "StablecoinGetOutflow",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/Stablecoin-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/outflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/outflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/outflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/outflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/outflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "outflow_total, outflow_top10, outflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "outflow_total",
               "outflow_top10",
               "outflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "outflow_total": {
                "type": "number",
                "description": "The total amount of Stablecoin that transferred from the exchange"
               },
               "outflow_top10": {
                "type": "number",
                "description": "The total Stablecoin amount of top 10 transactions (in terms of total tokens sent) flowing out of exchange wallets for every day that the exchange wallets we track have been live on the blockchain."
               },
               "outflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent from an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "outflow_total": 193852636.76,
            "outflow_top10": 35542.36,
            "outflow_mean": 10236.71,
            "outflow_mean_ma7": 25181
           },
           {
            "date": "2026-06-13",
            "outflow_total": 145781446.17,
            "outflow_top10": 26995.8,
            "outflow_mean": 8144.21,
            "outflow_mean_ma7": 25959.19
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/exchange-flows/transactions-count": {
   "get": {
    "tags": [
     "Stablecoin Exchange Flows"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns the number of transactions flowing in/out of Stablecoin exchanges.\n\n**📖 Data Guide:** [Stablecoin Exchange Transactions Count](/data-guide/stablecoin/stablecoin-exchange-transactions-count) — definition, interpretation, and chart examples.",
    "operationId": "StablecoinGetTransactionsCountEF",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/Stablecoin-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/transactions-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/transactions-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/transactions-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/transactions-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/transactions-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_inflow, transactions_count_outflow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_inflow",
               "transactions_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "transactions_count_inflow": {
                "type": "number",
                "description": "The number of transactions sent to the exchange ."
               },
               "transactions_count_outflow": {
                "type": "number",
                "description": "The number of transactions sent from the exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_inflow": 3850,
            "transactions_count_outflow": 18937
           },
           {
            "date": "2026-06-13",
            "transactions_count_inflow": 4106,
            "transactions_count_outflow": 17900
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/exchange-flows/addresses-count": {
   "get": {
    "tags": [
     "Stablecoin Exchange Flows"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns the number of addresses involved in inflow/outflow transactions.\n\n**📖 Data Guide:** [Stablecoin Exchange Addresses Count](/data-guide/stablecoin/stablecoin-exchange-addresses-count) — definition, interpretation, and chart examples.",
    "operationId": "StablecoinGetAddressesCountEF",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/Stablecoin-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/addresses-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/addresses-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/addresses-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/addresses-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/exchange-flows/addresses-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of addresses evoking inflow/outflow transactions to exchange wallets",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_inflow",
               "addresses_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "addresses_count_inflow": {
                "type": "number",
                "description": "The number of addresses evoking inflow transactions to exchange wallets"
               },
               "addresses_count_outflow": {
                "type": "number",
                "description": "The number of addresses evoking outflow transactions from exchange wallets"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_inflow": 3034,
            "addresses_count_outflow": 12934
           },
           {
            "date": "2026-06-13",
            "addresses_count_inflow": 3355,
            "addresses_count_outflow": 12173
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/network-data/supply": {
   "get": {
    "tags": [
     "Stablecoin Network Data"
    ],
    "summary": "Supply",
    "description": "This endpoint returns metrics related to token supply, i.e. the amount of tokens in existence. We currently provide six metrics. supply_total is the total amount of tokens in existence, and supply_circulating is an approximation of the amount of tokens that are circulating in the market(e.g. excluding tokens owned by the issuing company's treasury address). supply_minted and supply_burned represents how many tokens were added/subtracted from supply_total. supply_issued and supply_redeemed represents how many tokens were added/subtracted from supply_circulating. For some tokens, mint and issue(or redeem and burn) occurs simultaneously, and for others this does not. For further information, please refer to the section 'Stablecoin Issuing Mechanism'.\n\n**📖 Data Guide:** [Stablecoin Network Data](/data-guide/stablecoin/stablecoin-network-data) — definition, interpretation, and chart examples.",
    "operationId": "getSupplySC",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/network-data/supply?token=usdt_eth&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/network-data/supply?token=usdt_eth&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/network-data/supply?token=usdt_eth&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/network-data/supply?token=usdt_eth&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/network-data/supply?token=usdt_eth&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "supply_total, supply_minted, supply_burned, supply_circulating, supply_issued, supply_redeemed",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_total",
               "supply_minted",
               "supply_burned",
               "supply_circulating",
               "supply_issued",
               "supply_redeemed"
              ],
              "properties": {
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "supply_total": {
                "type": "number",
                "description": "The total amount of BTC in existence."
               },
               "supply_minted": {
                "type": "number",
                "description": "The amount of tokens minted (increase in total supply)."
               },
               "supply_burned": {
                "type": "number",
                "description": "The amount of tokens burned (decrease in total supply)."
               },
               "supply_circulating": {
                "type": "number",
                "description": "The approximation of the amount of tokens that are circulating in the market."
               },
               "supply_issued": {
                "type": "number",
                "description": "The amount of tokens issued (increase in circulating supply)."
               },
               "supply_redeemed": {
                "type": "number",
                "description": "The amount of tokens redeemed (decrease in circulating supply)."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "supply_total": 97070655229.72,
            "supply_minted": 0,
            "supply_burned": 0,
            "supply_circulating": 94316539729.04,
            "supply_issued": 70000000,
            "supply_redeemed": 27500000.01
           },
           {
            "date": "2026-06-13",
            "supply_total": 97070655229.72,
            "supply_minted": 0,
            "supply_burned": 0,
            "supply_circulating": 94274039729.05,
            "supply_issued": 0,
            "supply_redeemed": 8056000
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/network-data/events-count": {
   "get": {
    "tags": [
     "Stablecoin Network Data"
    ],
    "summary": "Events Count",
    "description": "This endpoint returns metrics related to the number of events. We provide several metrics. events_mint_count, events_issue_count, events_burn_count and events_redeem_count are metrics that represent the number of events related to each actions (mint, issue, burn, redeem). For further information about the actions, please refer to the section Stablecoin Issuing Mechanism.\n\n**📖 Data Guide:** [Stablecoin Network Data](/data-guide/stablecoin/stablecoin-network-data) — definition, interpretation, and chart examples.",
    "operationId": "getEventsCountSC",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/network-data/events-count?token=usdt_eth&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/network-data/events-count?token=usdt_eth&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/network-data/events-count?token=usdt_eth&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/network-data/events-count?token=usdt_eth&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/network-data/events-count?token=usdt_eth&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transfer, mint, issue, burn, redeem",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "events_transfer_count",
               "events_mint_count",
               "events_issue_count",
               "events_burn_count",
               "events_redeem_count"
              ],
              "properties": {
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "events_transfer_count": {
                "type": "number",
                "description": "The number of events that invokes transfer of positive(non-zero) amount of tokens."
               },
               "events_mint_count": {
                "type": "number",
                "description": "The number of events to mint(i.e. create) tokens, which results in a increased total supply."
               },
               "events_issue_count": {
                "type": "number",
                "description": "The number of events to issue tokens, which delivered tokens to the clients and increased circulating supply."
               },
               "events_burn_count": {
                "type": "number",
                "description": "The number of events to burn(i.e. revoke) tokens that results in a decreased supply."
               },
               "events_redeem_count": {
                "type": "number",
                "description": "The number of events to redeem tokens that results in a decrease in the circulating supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "events_transfer_count": 1222121,
            "events_mint_count": 0,
            "events_issue_count": 2,
            "events_burn_count": 0,
            "events_redeem_count": 2
           },
           {
            "date": "2026-06-13",
            "events_transfer_count": 1361563,
            "events_mint_count": 0,
            "events_issue_count": 1,
            "events_burn_count": 0,
            "events_redeem_count": 4
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/network-data/tokens-transferred": {
   "get": {
    "tags": [
     "Stablecoin Network Data"
    ],
    "summary": "Tokens Transferred",
    "description": "This endpoint returns metrics related to the number of tokens transferred, i.e transaction volume. We provide several metrics, `tokens_transferred_total`, the total number of transferred tokens, and `tokens_transferred_mean`, the mean tokens transferred per transaction.\n\n**📖 Data Guide:** [Stablecoin Network Data](/data-guide/stablecoin/stablecoin-network-data) — definition, interpretation, and chart examples.",
    "operationId": "getTokensTransferredSC",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/network-data/tokens-transferred?token=usdt_eth&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/network-data/tokens-transferred?token=usdt_eth&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/network-data/tokens-transferred?token=usdt_eth&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/network-data/tokens-transferred?token=usdt_eth&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/network-data/tokens-transferred?token=usdt_eth&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median"
              ],
              "properties": {
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean of tokens transferred per transaction."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 13534687845.65,
            "tokens_transferred_mean": 11074.75
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 14432911614.68,
            "tokens_transferred_mean": 10600.25
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/network-data/addresses-count": {
   "get": {
    "tags": [
     "Stablecoin Network Data"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns metrics relating to the number of used addresses to transfer the token. We provide several metrics, `addresses_active_count`, the total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window, `addresses_active_sender_count`, the number of addresses that were active as a sender, `addresses_active_receiver_count`, the number of addresses that were active as a receiver.\n\n**📖 Data Guide:** [Stablecoin Network Data](/data-guide/stablecoin/stablecoin-network-data) — definition, interpretation, and chart examples.",
    "operationId": "getAddressesCountSC",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/network-data/addresses-count?token=usdt_eth&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/network-data/addresses-count?token=usdt_eth&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/network-data/addresses-count?token=usdt_eth&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/network-data/addresses-count?token=usdt_eth&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/network-data/addresses-count?token=usdt_eth&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "addresses_active_count, addresses_active_sender_count, addresses_active_receiver_count, addresses_active_sender_percent, addresses_active_receiver_percent",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_active_count",
               "addresses_active_sender_count",
               "addresses_active_receiver_count",
               "addresses_active_sender_percent",
               "addresses_active_receiver_percent"
              ],
              "properties": {
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "addresses_active_count": {
                "type": "number",
                "description": "The total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window."
               },
               "addresses_active_sender_count": {
                "type": "number",
                "description": "The number of addresses that were active as a sender."
               },
               "addresses_active_receiver_count": {
                "type": "number",
                "description": "The number of addresses that were active as a receiver."
               },
               "addresses_active_sender_percent": {
                "type": "number",
                "description": "The percentage of active senders relative to total active addresses."
               },
               "addresses_active_receiver_percent": {
                "type": "number",
                "description": "The percentage of active receivers relative to total active addresses."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_active_count": 291965,
            "addresses_active_sender_count": 216977,
            "addresses_active_receiver_count": 242733,
            "addresses_active_sender_percent": 74.31609953,
            "addresses_active_receiver_percent": 83.13770486
           },
           {
            "date": "2026-06-13",
            "addresses_active_count": 306247,
            "addresses_active_sender_count": 233781,
            "addresses_active_receiver_count": 260187,
            "addresses_active_sender_percent": 76.33740086,
            "addresses_active_receiver_percent": 84.95985267
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/market-data/price-ohlcv": {
   "get": {
    "tags": [
     "Stablecoin Market Data"
    ],
    "summary": "Price OHLCV",
    "description": "This endpoint returns metrics related to Stablecoin's Index Price.  \n\nPrice OHLCV data consists of five metrics. \n`open`, the opening price at the beginning of the window, `close`, USD closing price at the end of the window, \n`high`, the highest USD price in a given window, `low`, the lowest USD price in a given window, \nand `volume`, the total token volume traded in a given window.  \n\nAt this endpoint, metrics are calculated by Minute, Hour and Day. \n\nStablecoin Index Price is calculated by taking VWAP(Volume Weighted Average Price) of Stablecoin price data aggregated from global exchanges. You can check supported exchanges [here](https://www.notion.so/cqlive/Stablecoins-ERC20-Exchange-List-e33b9baeae094fb090983dc1e1183b05).",
    "operationId": "getPriceOHLCVSC",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/market-data/price-ohlcv?token=usdt_eth&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/market-data/price-ohlcv?token=usdt_eth&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/market-data/price-ohlcv?token=usdt_eth&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/market-data/price-ohlcv?token=usdt_eth&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/market-data/price-ohlcv?token=usdt_eth&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Price OHLCV Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open",
               "high",
               "low",
               "close",
               "volume"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DDTHH:MM:SS (UTC time). This field only appears when window=block or window=min is used."
               },
               "open": {
                "type": "number",
                "description": "opening price at the beginning of the window."
               },
               "high": {
                "type": "number",
                "description": "opening price at the end of the window."
               },
               "low": {
                "type": "number",
                "description": "The highest price in a given window."
               },
               "close": {
                "type": "number",
                "description": "The lowest price in a given window."
               },
               "volume": {
                "type": "number",
                "description": "The total traded amount in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open": 0.99864875,
            "high": 0.99956,
            "low": 0.99800335,
            "close": 0.99929,
            "volume": 131213850.83
           },
           {
            "date": "2026-06-13",
            "open": 0.99939,
            "high": 0.99971092,
            "low": 0.9986182,
            "close": 0.99867749,
            "volume": 85767882.77
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/market-data/capitalization": {
   "get": {
    "tags": [
     "Stablecoin Market Data"
    ],
    "summary": "Capitalization",
    "description": "This endpoint returns metrics related to market capitalization. We currently provide market_cap, which is total market capitalization of the token, calculated by multiplying the circulating supply with its USD price(circulating_supply * price_usd_close).\n\n**📖 Data Guide:** [Capitalization models](/data-guide/market/capitalization-models) — definition, interpretation, and chart examples.",
    "operationId": "getCapitalizationSC",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/market-data/capitalization?token=usdt_eth&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/market-data/capitalization?token=usdt_eth&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/market-data/capitalization?token=usdt_eth&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/market-data/capitalization?token=usdt_eth&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/market-data/capitalization?token=usdt_eth&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Market capitalization of the stable coin, calculated by total_supply * price_usd_close.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "market_cap"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "market_cap": {
                "type": "number",
                "description": "Market capitalization of the stable coin, calculated by total_supply * price_usd_close."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "market_cap": 94249574985.83
           },
           {
            "date": "2026-06-13",
            "market_cap": 94149361368.76
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/stablecoin/flow-indicator/exchange-supply-ratio": {
   "get": {
    "tags": [
     "Stablecoin Flow Indicator"
    ],
    "summary": "Exchange Supply Ratio",
    "description": "Exchange Supply Ratio is calculated as exchange reserve divided by total supply. The metric measures how much tokens are reserved in the exchange relative to total supply of the token.\n\n**📖 Data Guide:** [Exchange Supply Ratio](/data-guide/exchange/exchange-supply-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getExchangeSupplyRatioSC",
    "parameters": [
     {
      "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "usdt_eth"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/Stablecoin-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day` and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/stablecoin/flow-indicator/exchange-supply-ratio?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/stablecoin/flow-indicator/exchange-supply-ratio?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/stablecoin/flow-indicator/exchange-supply-ratio?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/stablecoin/flow-indicator/exchange-supply-ratio?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/stablecoin/flow-indicator/exchange-supply-ratio?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Ratio of reserved token in the exchange relative to total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "supply_ratio": {
                "type": "number",
                "description": "Ratio of reserved token in the exchange relative to total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "exchange_supply_ratio": 0.40284913
           },
           {
            "date": "2026-06-13",
            "exchange_supply_ratio": 0.40283837
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/supply": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Supply",
    "description": "This endpoint returns metrics related to Ethereum supply, i.e. the amount of Ethereum in existence. We currently provide two metrics, `supply_total`, the total amount of Ethereum in existence (sum of all Ethereum issued by the block rewards), and `supply_new`, the amount of newly issued tokens in a given window.",
    "operationId": "getSupplyETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/supply?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/supply?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/supply?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/supply?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/supply?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "supply_total, supply_new.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_total",
               "supply_new"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "supply_total": {
                "type": "number",
                "description": "The total amount of ETH in existence."
               },
               "supply_new": {
                "type": "number",
                "description": "The sum of newly issued tokens in that window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "supply_total": 122183582.7,
            "supply_new": 3233.73
           },
           {
            "date": "2026-06-13",
            "supply_total": 122180349.18,
            "supply_new": 3712.4
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/velocity": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Velocity",
    "description": "This endpoint returns metrics related to the velocity of Ethereum. Ethereum's velocity is calculated by dividing the trailing 1 year estimated transaction volume(the cumulated sum of transferred tokens) by current supply. Velocity is a metric that explains how actively is money circulating in the market.",
    "operationId": "getVelocityETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/velocity?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/velocity?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/velocity?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/velocity?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/velocity?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Estimated transaction volume in the trailing 1 year divided by current total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "velocity_supply_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "velocity_supply_total": {
                "type": "number",
                "description": "Estimated transaction volume in the trailing 1 year divided by current total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "velocity_supply_total": 9.807202
           },
           {
            "date": "2026-06-13",
            "velocity_supply_total": 9.83030919
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/contracts-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Contracts Count",
    "description": "This endpoint returns metrics related to the number of contracts. We provide `contracts_created_new` representing the number of contracts created, `contracts_destroyed_new` representing the number of contracts destroyed, and `contracts_count_total` representing the unique number of contracts.",
    "operationId": "getContractsCountETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/contracts-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/contracts-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/contracts-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/contracts-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/contracts-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "contracts_created_new, contracts_destroyed_new, contracts_count_total.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "contracts_created_new",
               "contracts_destroyed_new",
               "contracts_count_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "contracts_created_new": {
                "type": "number",
                "description": "The number of new contracts created in the window."
               },
               "contracts_destroyed_new": {
                "type": "number",
                "description": "The number of contracts destroyed in the window."
               },
               "contracts_count_total": {
                "type": "number",
                "description": "The number of unique contracts in existence."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "contracts_created_new": 64453,
            "contracts_destroyed_new": 41615,
            "contracts_count_total": 68308812
           },
           {
            "date": "2026-06-13",
            "contracts_created_new": 39722,
            "contracts_destroyed_new": 39710,
            "contracts_count_total": 68285974
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/transactions-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns metrics related to the number of transactions. We provide several metrics, `transactions_count_total`, the total number of transactions, `transactions_count_mean`, the mean number of transactions.",
    "operationId": "getTransactionsCountETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/transactions-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/transactions-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_total, transactions_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_total",
               "transactions_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "transactions_count_total": {
                "type": "number",
                "description": "Total number of transactions in that window."
               },
               "transactions_count_mean": {
                "type": "number",
                "description": "The mean number of transactions per block. For window=block, this value will be same as transactions_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_total": 2203662,
            "transactions_count_mean": 307.34476987
           },
           {
            "date": "2026-06-13",
            "transactions_count_total": 2573193,
            "transactions_count_mean": 358.73316604
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/transactions-count-between-eoa": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Transactions Count Between EOA",
    "description": "This endpoint returns metrics related to the number of transactions between externally owned accounts (EOAs).",
    "operationId": "getTransactionsCountBetweenEOAETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-between-eoa?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-between-eoa?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-between-eoa?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-between-eoa?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-between-eoa?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_total, transactions_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_total",
               "transactions_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "transactions_count_total": {
                "type": "number",
                "description": "Total number of transactions in that window."
               },
               "transactions_count_mean": {
                "type": "number",
                "description": "The mean number of transactions per block. For window=block, this value will be same as transactions_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_total": 1240127,
            "transactions_count_mean": 172.96052999
           },
           {
            "date": "2026-06-13",
            "transactions_count_total": 1617603,
            "transactions_count_mean": 225.51275617
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/contract-calls-count-external": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Contract Calls Count External",
    "description": "This endpoint returns metrics related to the number of external contract calls.",
    "operationId": "getContractCallsCountExternalETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-external?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-external?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-external?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-external?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-external?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "contract_calls_count_total, contract_calls_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "contract_calls_count_total",
               "contract_calls_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "contract_calls_count_total": {
                "type": "number",
                "description": "Total number of contract calls in that window."
               },
               "contract_calls_count_mean": {
                "type": "number",
                "description": "The mean number of contract calls per block. For window=block, this value will be same as contract_calls_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "contract_calls_count_total": 937253,
            "contract_calls_count_mean": 130.71868898
           },
           {
            "date": "2026-06-13",
            "contract_calls_count_total": 918824,
            "contract_calls_count_mean": 128.09479994
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/contract-calls-count-internal": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Contract Calls Count Internal",
    "description": "This endpoint returns metrics related to the number of internal contract calls.",
    "operationId": "getContractCallsCountInternalETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-internal?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-internal?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-internal?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-internal?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count-internal?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "contract_calls_count_total, contract_calls_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "contract_calls_count_total",
               "contract_calls_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "contract_calls_count_total": {
                "type": "number",
                "description": "Total number of contract calls in that window."
               },
               "contract_calls_count_mean": {
                "type": "number",
                "description": "The mean number of contract calls per block. For window=block, this value will be same as contract_calls_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "contract_calls_count_total": 13451643,
            "contract_calls_count_mean": 1876.1
           },
           {
            "date": "2026-06-13",
            "contract_calls_count_total": 12109505,
            "contract_calls_count_mean": 1688.21
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/contract-calls-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Contract Calls Count",
    "description": "This endpoint returns metrics related to the number of contract calls including both internal and external calls.",
    "operationId": "getContractCallsCountETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/contract-calls-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "contract_calls_count_total, contract_calls_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "contract_calls_count_total",
               "contract_calls_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "contract_calls_count_total": {
                "type": "number",
                "description": "Total number of contract calls in that window."
               },
               "contract_calls_count_mean": {
                "type": "number",
                "description": "The mean number of contract calls per block. For window=block, this value will be same as contract_calls_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "contract_calls_count_total": 14388896,
            "contract_calls_count_mean": 2006.82
           },
           {
            "date": "2026-06-13",
            "contract_calls_count_total": 13028329,
            "contract_calls_count_mean": 1816.3
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/transactions-count-all": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Transactions Count All",
    "description": "This endpoint returns metrics related to the number of transactions including internal contract calls.",
    "operationId": "getTransactionsCountAllETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-all?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-all?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-all?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-all?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/transactions-count-all?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_total, transactions_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_total",
               "transactions_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "transactions_count_total": {
                "type": "number",
                "description": "Total number of transactions in that window."
               },
               "transactions_count_mean": {
                "type": "number",
                "description": "The mean number of transactions per block. For window=block, this value will be same as transactions_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_total": 15629023,
            "transactions_count_mean": 2179.78
           },
           {
            "date": "2026-06-13",
            "transactions_count_total": 14645932,
            "transactions_count_mean": 2041.81
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/addresses-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns metrics relating to the number of used Ethereum addresses. We provide several metrics, `addresses_count_active`, the total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window, `addresses_count_sender`, the number of addresses that were active as a sender, and `addresses_count_receiver`, the number of addresses that were active as a receiver.",
    "operationId": "getAddressesCountETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/addresses-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/addresses-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/addresses-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/addresses-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/addresses-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "addresses_count_active, addresses_count_sender, addresses_count_receiver.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_active",
               "addresses_count_sender",
               "addresses_count_receiver"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "addresses_count_active": {
                "type": "number",
                "description": "The total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window."
               },
               "addresses_count_sender": {
                "type": "number",
                "description": "The number of addresses that were active as a sender."
               },
               "addresses_count_receiver": {
                "type": "number",
                "description": "The number of addresses that were active as a receiver."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_active": 356651,
            "addresses_count_sender": 250319,
            "addresses_count_receiver": 195307
           },
           {
            "date": "2026-06-13",
            "addresses_count_active": 470710,
            "addresses_count_sender": 358139,
            "addresses_count_receiver": 204668
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/addresses-count-all": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Addresses Count All",
    "description": "This endpoint returns metrics related to the number of used Ethereum addresses including internal contract calls. We provide several metrics, `addresses_count_active`, the total number of unique addresses that were active (either sender or receiver) on the blockchain, `addresses_count_sender`, the number of addresses that were active as a sender, and `addresses_count_receiver`, the number of addresses that were active as a receiver.",
    "operationId": "getAddressesCountAllETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/addresses-count-all?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/addresses-count-all?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/addresses-count-all?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/addresses-count-all?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/addresses-count-all?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "addresses_count_active, addresses_count_sender, addresses_count_receiver.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_active",
               "addresses_count_sender",
               "addresses_count_receiver"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "addresses_count_active": {
                "type": "number",
                "description": "The total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window."
               },
               "addresses_count_sender": {
                "type": "number",
                "description": "The number of addresses that were active as a sender."
               },
               "addresses_count_receiver": {
                "type": "number",
                "description": "The number of addresses that were active as a receiver."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_active": 865287,
            "addresses_count_sender": 795861,
            "addresses_count_receiver": 721589
           },
           {
            "date": "2026-06-13",
            "addresses_count_active": 978923,
            "addresses_count_sender": 897949,
            "addresses_count_receiver": 760742
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred Count",
    "description": "This endpoint returns metrics related to the number of tokens transferred executed. We provide several metrics, `tokens_transferred_count_total`, the total number of executed tokens transferred, and `tokens_transferred_count_mean`, the mean number of executed tokens transferred.",
    "operationId": "getTokensTransferredCountETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_count_total, tokens_transferred_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_count_total",
               "tokens_transferred_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_count_total": {
                "type": "number",
                "description": "Total number of tokens transferred count in that window."
               },
               "tokens_transferred_count_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred count per block. For window=block, this value will be same as tokens_transferred_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_count_total": 1332016,
            "tokens_transferred_count_mean": 185.7762901
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_count_total": 1691331,
            "tokens_transferred_count_mean": 235.79130071
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-count-between-eoa": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred Count Between EOA",
    "description": "This endpoint returns metrics related to the number of tokens transferred executed between externally owned accounts (EOAs).",
    "operationId": "getTokensTransferredCountBetweenEOAETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-between-eoa?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-between-eoa?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-between-eoa?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-between-eoa?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-between-eoa?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_count_total, tokens_transferred_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_count_total",
               "tokens_transferred_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_count_total": {
                "type": "number",
                "description": "Total number of tokens transferred count in that window."
               },
               "tokens_transferred_count_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred count per block. For window=block, this value will be same as tokens_transferred_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_count_total": 1212676,
            "tokens_transferred_count_mean": 169.13193863
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_count_total": 1570021,
            "tokens_transferred_count_mean": 218.87926948
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-count-by-contract-calls-external": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred Count By Contract Calls External",
    "description": "This endpoint returns metrics related to the number of tokens transferred executed by external contract calls.",
    "operationId": "getTokensTransferredCountByContractCallsExternalETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-external?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-external?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-external?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-external?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-external?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_count_total, tokens_transferred_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_count_total",
               "tokens_transferred_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_count_total": {
                "type": "number",
                "description": "Total number of tokens transferred count in that window."
               },
               "tokens_transferred_count_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred count per block. For window=block, this value will be same as tokens_transferred_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_count_total": 119340,
            "tokens_transferred_count_mean": 16.64435146
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_count_total": 121310,
            "tokens_transferred_count_mean": 16.91203123
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-count-by-contract-calls-internal": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred Count By Contract Calls Internal",
    "description": "This endpoint returns metrics related to the number of tokens transferred executed by internal contract calls.",
    "operationId": "getTokensTransferredCountByContractCallsInternalETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-internal?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-internal?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-internal?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-internal?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls-internal?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_count_total, tokens_transferred_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_count_total",
               "tokens_transferred_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_count_total": {
                "type": "number",
                "description": "Total number of tokens transferred count in that window."
               },
               "tokens_transferred_count_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred count per block. For window=block, this value will be same as tokens_transferred_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_count_total": 1101537,
            "tokens_transferred_count_mean": 153.63138075
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_count_total": 1303103,
            "tokens_transferred_count_mean": 181.66778196
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-count-by-contract-calls": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred Count By Contract Calls",
    "description": "This endpoint returns metrics related to the number of tokens transferred executed by contract calls including both internal and external calls.",
    "operationId": "getTokensTransferredCountByContractCallsETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-by-contract-calls?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_count_total, tokens_transferred_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_count_total",
               "tokens_transferred_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_count_total": {
                "type": "number",
                "description": "Total number of tokens transferred count in that window."
               },
               "tokens_transferred_count_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred count per block. For window=block, this value will be same as tokens_transferred_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_count_total": 1220877,
            "tokens_transferred_count_mean": 170.27573222
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_count_total": 1424413,
            "tokens_transferred_count_mean": 198.57981319
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-count-all": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred Count All",
    "description": "This endpoint returns metrics related to the number of tokens transferred executed including internal contract calls.",
    "operationId": "getTokensTransferredCountAllETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-all?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-all?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-all?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-all?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-count-all?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_count_total, tokens_transferred_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_count_total",
               "tokens_transferred_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_count_total": {
                "type": "number",
                "description": "Total number of tokens transferred count in that window."
               },
               "tokens_transferred_count_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred count per block. For window=block, this value will be same as tokens_transferred_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_count_total": 2433553,
            "tokens_transferred_count_mean": 339.40767085
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_count_total": 2994434,
            "tokens_transferred_count_mean": 417.45908267
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred",
    "description": "This endpoint returns metrics related to the number of tokens transferred, i.e transaction volume. We provide several metrics, `tokens_transferred_total`, the total number of transferred tokens in that window, `tokens_transferred_mean`, the mean of transferred tokens per transaction in that window, and `tokens_transferred_median`, the median of tokens transferred per transaction. We also provide this value in USD units.",
    "operationId": "getTokensTransferredETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean, tokens_transferred_median, tokens_transferred_total_usd, tokens_transferred_mean_usd, tokens_transferred_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median",
               "tokens_transferred_total_usd",
               "tokens_transferred_mean_usd",
               "tokens_transferred_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_total_usd": {
                "type": "number",
                "description": "Total number of tokens transferred in that window, calculated in USD."
               },
               "tokens_transferred_mean_usd": {
                "type": "number",
                "description": "The mean number of tokens transferred per block, calculated in USD."
               },
               "tokens_transferred_median_usd": {
                "type": "number",
                "description": "The median number of tokens transferred per block, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 857244.15,
            "tokens_transferred_mean": 0.64356896,
            "tokens_transferred_median": 0,
            "tokens_transferred_total_usd": 1478279640.04,
            "tokens_transferred_mean_usd": 1109.81,
            "tokens_transferred_median_usd": 0.00000172
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 633112.17,
            "tokens_transferred_mean": 0.37432777,
            "tokens_transferred_median": 0,
            "tokens_transferred_total_usd": 1063246801.48,
            "tokens_transferred_mean_usd": 628.64501477,
            "tokens_transferred_median_usd": 0.00000168
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-between-eoa": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred Between EOA",
    "description": "This endpoint returns metrics related to the number of tokens transferred, i.e transaction volume. Note these metrics include transactions with tokens transferred between externally owned accounts (EOAs).",
    "operationId": "getTokensTransferredBetweenEOAETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-between-eoa?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-between-eoa?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-between-eoa?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-between-eoa?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-between-eoa?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean, tokens_transferred_median, tokens_transferred_total_usd, tokens_transferred_mean_usd, tokens_transferred_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median",
               "tokens_transferred_total_usd",
               "tokens_transferred_mean_usd",
               "tokens_transferred_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_total_usd": {
                "type": "number",
                "description": "Total number of tokens transferred in that window, calculated in USD."
               },
               "tokens_transferred_mean_usd": {
                "type": "number",
                "description": "The mean number of tokens transferred per block, calculated in USD."
               },
               "tokens_transferred_median_usd": {
                "type": "number",
                "description": "The median number of tokens transferred per block, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 650228.86,
            "tokens_transferred_mean": 0.53619339,
            "tokens_transferred_median": 0,
            "tokens_transferred_total_usd": 1121290921.55,
            "tokens_transferred_mean_usd": 924.64180173,
            "tokens_transferred_median_usd": 0.00000172
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 535112.2,
            "tokens_transferred_mean": 0.34083124,
            "tokens_transferred_median": 0,
            "tokens_transferred_total_usd": 898665935.51,
            "tokens_transferred_mean_usd": 572.39102886,
            "tokens_transferred_median_usd": 0.00000168
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-by-contract-calls-external": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred By Contract Calls External",
    "description": "This endpoint returns metrics related to the number of tokens transferred by external contract calls, i.e transaction volume.",
    "operationId": "getTokensTransferredByContractCallsExternalETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-external?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-external?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-external?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-external?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-external?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean, tokens_transferred_median, tokens_transferred_total_usd, tokens_transferred_mean_usd, tokens_transferred_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median",
               "tokens_transferred_total_usd",
               "tokens_transferred_mean_usd",
               "tokens_transferred_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_total_usd": {
                "type": "number",
                "description": "Total number of tokens transferred in that window, calculated in USD."
               },
               "tokens_transferred_mean_usd": {
                "type": "number",
                "description": "The mean number of tokens transferred per block, calculated in USD."
               },
               "tokens_transferred_median_usd": {
                "type": "number",
                "description": "The median number of tokens transferred per block, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 207015.29,
            "tokens_transferred_mean": 1.7346681,
            "tokens_transferred_median": 0.00792,
            "tokens_transferred_total_usd": 356988718.49,
            "tokens_transferred_mean_usd": 2991.36,
            "tokens_transferred_median_usd": 13.65768994
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 97999.96,
            "tokens_transferred_mean": 0.80784737,
            "tokens_transferred_median": 0.00712612,
            "tokens_transferred_total_usd": 164580865.97,
            "tokens_transferred_mean_usd": 1356.7,
            "tokens_transferred_median_usd": 11.96758482
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-by-contract-calls-internal": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred By Contract Calls Internal",
    "description": "This endpoint returns metrics related to the number of tokens transferred by internal contract calls, i.e transaction volume.",
    "operationId": "getTokensTransferredByContractCallsInternalETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-internal?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-internal?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-internal?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-internal?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls-internal?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean, tokens_transferred_median, tokens_transferred_total_usd, tokens_transferred_mean_usd, tokens_transferred_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median",
               "tokens_transferred_total_usd",
               "tokens_transferred_mean_usd",
               "tokens_transferred_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_total_usd": {
                "type": "number",
                "description": "Total number of tokens transferred in that window, calculated in USD."
               },
               "tokens_transferred_mean_usd": {
                "type": "number",
                "description": "The mean number of tokens transferred per block, calculated in USD."
               },
               "tokens_transferred_median_usd": {
                "type": "number",
                "description": "The median number of tokens transferred per block, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 901342.47,
            "tokens_transferred_mean": 0.81825892,
            "tokens_transferred_median": 0.00000599,
            "tokens_transferred_total_usd": 1554325253.51,
            "tokens_transferred_mean_usd": 1411.05,
            "tokens_transferred_median_usd": 0.01032405
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 819546.86,
            "tokens_transferred_mean": 0.62891948,
            "tokens_transferred_median": 0.00000564,
            "tokens_transferred_total_usd": 1376344692.23,
            "tokens_transferred_mean_usd": 1056.21,
            "tokens_transferred_median_usd": 0.0094704
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-by-contract-calls": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred By Contract Calls",
    "description": "This endpoint returns metrics related to the number of tokens transferred by contract calls including both internal and external calls, i.e transaction volume.",
    "operationId": "getTokensTransferredByContractCallsETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-by-contract-calls?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean, tokens_transferred_median, tokens_transferred_total_usd, tokens_transferred_mean_usd, tokens_transferred_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median",
               "tokens_transferred_total_usd",
               "tokens_transferred_mean_usd",
               "tokens_transferred_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_total_usd": {
                "type": "number",
                "description": "Total number of tokens transferred in that window, calculated in USD."
               },
               "tokens_transferred_mean_usd": {
                "type": "number",
                "description": "The mean number of tokens transferred per block, calculated in USD."
               },
               "tokens_transferred_median_usd": {
                "type": "number",
                "description": "The median number of tokens transferred per block, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 1108357.76,
            "tokens_transferred_mean": 0.90783737,
            "tokens_transferred_median": 0.00000631,
            "tokens_transferred_total_usd": 1911313972,
            "tokens_transferred_mean_usd": 1565.53,
            "tokens_transferred_median_usd": 0.01087669
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 917546.82,
            "tokens_transferred_mean": 0.64415785,
            "tokens_transferred_median": 0.00000588,
            "tokens_transferred_total_usd": 1540925558.2,
            "tokens_transferred_mean_usd": 1081.8,
            "tokens_transferred_median_usd": 0.00986658
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/tokens-transferred-all": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Tokens Transferred All",
    "description": "This endpoint returns metrics related to the number of tokens transferred, i.e transaction volume. Note these metrics include internal contract calls.",
    "operationId": "getTokensTransferredAllETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-all?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-all?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-all?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-all?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/tokens-transferred-all?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean, tokens_transferred_median, tokens_transferred_total_usd, tokens_transferred_mean_usd, tokens_transferred_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median",
               "tokens_transferred_total_usd",
               "tokens_transferred_mean_usd",
               "tokens_transferred_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_total_usd": {
                "type": "number",
                "description": "Total number of tokens transferred in that window, calculated in USD."
               },
               "tokens_transferred_mean_usd": {
                "type": "number",
                "description": "The mean number of tokens transferred per block, calculated in USD."
               },
               "tokens_transferred_median_usd": {
                "type": "number",
                "description": "The median number of tokens transferred per block, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 1758586.62,
            "tokens_transferred_mean": 0.72264159,
            "tokens_transferred_median": 0.00000337,
            "tokens_transferred_total_usd": 3032604893.55,
            "tokens_transferred_mean_usd": 1246.16,
            "tokens_transferred_median_usd": 0.00580645
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 1452659.03,
            "tokens_transferred_mean": 0.48511973,
            "tokens_transferred_median": 0.0000029,
            "tokens_transferred_total_usd": 2439591493.71,
            "tokens_transferred_mean_usd": 814.70872082,
            "tokens_transferred_median_usd": 0.00487255
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/failed-transactions-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Failed Transactions Count",
    "description": "This endpoint returns metrics related to the number of failed transactions. We provide `failed_transactions_count_total` metric, the total number of failed transactions.",
    "operationId": "getFailedTransactionsCountETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/failed-transactions-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/failed-transactions-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/failed-transactions-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/failed-transactions-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/failed-transactions-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of failed transactions count.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "failed_transactions_count_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "failed_transactions_count_total": {
                "type": "number",
                "description": "The number of failed transactions count."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "failed_transactions_count_total": 345321
           },
           {
            "date": "2026-06-13",
            "failed_transactions_count_total": 395551
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/failed-tokens-transferred-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Failed Tokens Transferred Count",
    "description": "This endpoint returns metrics related to the number of failed transactions with tokens transferred. We provide `failed_tokens_transferred_count_total` metric, the total number of failed transactions with tokens transferred.",
    "operationId": "getFailedTokensTransferredCountETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/failed-tokens-transferred-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/failed-tokens-transferred-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/failed-tokens-transferred-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/failed-tokens-transferred-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/failed-tokens-transferred-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of failed tokens transferred count.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "failed_tokens_transferred_count_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "failed_tokens_transferred_count_total": {
                "type": "number",
                "description": "The number of failed tokens transferred count."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "failed_tokens_transferred_count_total": 16428
           },
           {
            "date": "2026-06-13",
            "failed_tokens_transferred_count_total": 13323
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/block-bytes": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Block Bytes",
    "operationId": "getBlockBytesETH",
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/block-bytes?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/block-bytes?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/block-bytes?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/block-bytes?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/block-bytes?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "description": "The mean size(in bytes) of all blocks generated.",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "responses": {
     "200": {
      "description": "The mean size(in bytes) of all blocks generated.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "block_bytes"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "block_bytes": {
                "type": "integer",
                "description": "The mean size(in bytes) of all blocks generated."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "block_bytes": 190282.31
           },
           {
            "date": "2026-06-13",
            "block_bytes": 209260.24
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/block-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Block Count",
    "description": "The number of blocks generated in a given window.",
    "operationId": "getBlockCountETH",
    "parameters": [
     {
      "description": "Currently, we support `day`, `hour`, and `10min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/block-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/block-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/block-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/block-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/block-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of blocks generated in a given window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or 10min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "block_count"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=10min or window=hour is used."
               },
               "block_count": {
                "type": "integer",
                "description": "The number of blocks generated in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "block_count": 7170
           },
           {
            "date": "2026-06-13",
            "block_count": 7173
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/block-interval": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Block Interval",
    "description": "The average time between blocks generated displayed in seconds.",
    "operationId": "getBlockIntervalETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/block-interval?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/block-interval?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/block-interval?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/block-interval?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/block-interval?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The average time between blocks generated in seconds.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "block_interval"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "block_interval": {
                "type": "integer",
                "description": "The average time between blocks generated in seconds."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "block_interval": 12.05021621
           },
           {
            "date": "2026-06-13",
            "block_interval": 12.04517568
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/fees": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Fees",
    "description": "This endpoint returns the statistics related to fees paid from executing transactions. We provide the following statistics, `fees_total`, the sum of all fees, `fees_block_mean`, the average fee per block, and `fees_reward_percent`, the percentage of fees relative to the total block reward. We provide the metrics in both ETH and USD units.",
    "operationId": "getFeesETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/fees?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/fees?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/fees?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/fees?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/fees?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "fees_total, fees_total_usd, fees_block_mean, fees_block_mean_usd, fees_reward_percent.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_block_mean",
               "fees_block_mean_usd",
               "fees_total",
               "fees_total_usd",
               "fees_reward_percent"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "fees_block_mean": {
                "type": "number",
                "description": "The average fee per block."
               },
               "fees_block_mean_usd": {
                "type": "number",
                "description": "The average fee per block, calculated in USD."
               },
               "fees_total": {
                "type": "number",
                "description": "The sum of all fees that are paid from executing Ethereum transactions."
               },
               "fees_total_usd": {
                "type": "number",
                "description": "The sum of all fees that are paid from executing Ethereum transactions, calculated in USD."
               },
               "fees_reward_percent": {
                "type": "number",
                "description": "The percentage of fee in total block reward. Values are between 0 and 1."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_block_mean": 0.01121463,
            "fees_block_mean_usd": 19.33913818,
            "fees_total": 106.641632,
            "fees_total_usd": 183898.78,
            "fees_reward_percent": 1
           },
           {
            "date": "2026-06-13",
            "fees_block_mean": 0.00899725,
            "fees_block_mean_usd": 15.10994994,
            "fees_total": 93.30710494,
            "fees_total_usd": 156699.69,
            "fees_reward_percent": 1
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/fees-burnt": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Fees Burnt",
    "description": "This endpoint returns the statistics related to fees burnt in Ethereum chain by executing transactions, introduced after London upgrade. We provide the total amount of burnt fees as `fees_burnt_total` in ETH and `fees_burnt_total_usd` in USD units. These metrics have data entries starting post to London upgrade (block height `12965000`, datetime `2021-08-05 12:33:42`).",
    "operationId": "getFeesBurntETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "fees_burnt_total, fees_burnt_total_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_burnt_total",
               "fees_burnt_total_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "fees_burnt_total": {
                "type": "number",
                "description": "The sum of all fees that are burnt in Ethereum chain by executing transactions."
               },
               "fees_burnt_total_usd": {
                "type": "number",
                "description": "The sum of all fees that are burnt in Ethereum chain by executing transactions, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_burnt_total": 26.23271649,
            "fees_burnt_total_usd": 45237.16
           },
           {
            "date": "2026-06-13",
            "fees_burnt_total": 28.7698583,
            "fees_burnt_total_usd": 48316.02
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/fees-tips": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Fees Tips",
    "description": "This endpoint returns the statistics related to fees directly paid to Ethereum miners, introduced after London upgrade. We provide the total amount of fees as tips as `fees_tips_total` in ETH and `fees_tips_total_usd` in USD units. These metrics have data entries starting post to London upgrade (block height `12965000`, datetime `2021-08-05 12:33:42`).",
    "operationId": "getFeesTipsETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/fees-tips?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/fees-tips?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/fees-tips?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/fees-tips?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/fees-tips?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "fees_tips_total, fees_tips_total_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_tips_total",
               "fees_tips_total_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "fees_tips_total": {
                "type": "number",
                "description": "The sum of all fees that are directly paid to Ethereum miners."
               },
               "fees_tips_total_usd": {
                "type": "number",
                "description": "The sum of all fees that are directly paid to Ethereum miners, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_tips_total": 80.40891551,
            "fees_tips_total_usd": 138661.62
           },
           {
            "date": "2026-06-13",
            "fees_tips_total": 64.53724664,
            "fees_tips_total_usd": 108383.67
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/fees-transaction": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Fees Transaction",
    "description": "This endpoint returns the statistics related to fees per transaction that are paid from executing transactions. We provide the following statistics, `fees_transaction_mean`, the average fee per transaction, `fees_transaction_median`, the median fee per transaction. We provide the metrics in both ETH and USD units.",
    "operationId": "getFeesTransactionETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/fees-transaction?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/fees-transaction?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/fees-transaction?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/fees-transaction?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/fees-transaction?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "fees_transaction_mean, fees_transaction_mean_usd, fees_transaction_median, fees_transaction_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_transaction_mean",
               "fees_transaction_mean_usd",
               "fees_transaction_median",
               "fees_transaction_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "fees_transaction_mean": {
                "type": "number",
                "description": "The average fee per transaction."
               },
               "fees_transaction_mean_usd": {
                "type": "number",
                "description": "The average fee per transaction, calculated in USD."
               },
               "fees_transaction_median": {
                "type": "number",
                "description": "The median fee per transaction."
               },
               "fees_transaction_median_usd": {
                "type": "number",
                "description": "The median fee per transaction, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_transaction_mean": 0.00004839,
            "fees_transaction_mean_usd": 0.08345145,
            "fees_transaction_median": 0.00000385,
            "fees_transaction_median_usd": 0.00664502
           },
           {
            "date": "2026-06-13",
            "fees_transaction_mean": 0.00003626,
            "fees_transaction_mean_usd": 0.06089698,
            "fees_transaction_median": 0.00000318,
            "fees_transaction_median_usd": 0.00534522
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/fees-burnt-transaction": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Fees Burnt Transaction",
    "description": "This endpoint returns the statistics related to fees per transaction burnt in Ethereum chain by executing transactions, introduced after London upgrade. We provide the average amount of burnt fees per transaction as `fees_burnt_transaction_mean` and the median amount as `fees_burnt_transaction_median`. We provide the metrics in both ETH and USD units. These metrics have data entries starting post to London upgrade (block height `12965000`, datetime `2021-08-05 12:33:42`).",
    "operationId": "getFeesBurntTransactionETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt-transaction?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt-transaction?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt-transaction?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt-transaction?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/fees-burnt-transaction?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "fees_burnt_transaction_mean, fees_burnt_transaction_mean_usd, fees_burnt_transaction_median, fees_burnt_transaction_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_burnt_transaction_mean",
               "fees_burnt_transaction_mean_usd",
               "fees_burnt_transaction_median",
               "fees_burnt_transaction_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "fees_burnt_transaction_mean": {
                "type": "number",
                "description": "The average burnt fee per transaction."
               },
               "fees_burnt_transaction_mean_usd": {
                "type": "number",
                "description": "The average burnt fee per transaction, calculated in USD."
               },
               "fees_burnt_transaction_median": {
                "type": "number",
                "description": "The median burnt fee per transaction."
               },
               "fees_burnt_transaction_median_usd": {
                "type": "number",
                "description": "The median burnt fee per transaction, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_burnt_transaction_mean": 0.0000119,
            "fees_burnt_transaction_mean_usd": 0.02052818,
            "fees_burnt_transaction_median": 0.00000299,
            "fees_burnt_transaction_median_usd": 0.00515913
           },
           {
            "date": "2026-06-13",
            "fees_burnt_transaction_mean": 0.00001118,
            "fees_burnt_transaction_mean_usd": 0.01877668,
            "fees_burnt_transaction_median": 0.00000293,
            "fees_burnt_transaction_median_usd": 0.00492741
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/fees-tips-transaction": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Fees Tips Transaction",
    "description": "This endpoint returns the statistics related to fees per transaction directly paid to Ethereum miners, introduced after London upgrade. We provide the average amount of fees tips per transaction as `fees_tips_transaction_mean` and the median amount as `fees_tips_transaction_median`. We provide the metrics in both ETH and USD units. These metrics have data entries starting post to London upgrade (block height `12965000`, datetime `2021-08-05 12:33:42`).",
    "operationId": "getFeesTipsTransactionETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/fees-tips-transaction?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/fees-tips-transaction?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/fees-tips-transaction?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/fees-tips-transaction?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/fees-tips-transaction?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "fees_tips_transaction_mean, fees_tips_transaction_mean_usd, fees_tips_transaction_median, fees_tips_transaction_median_usd.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_tips_transaction_mean",
               "fees_tips_transaction_mean_usd",
               "fees_tips_transaction_median",
               "fees_tips_transaction_median_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "fees_tips_transaction_mean": {
                "type": "number",
                "description": "The average fee for tips per transaction."
               },
               "fees_tips_transaction_mean_usd": {
                "type": "number",
                "description": "The average fee for tips per transaction, calculated in USD."
               },
               "fees_tips_transaction_median": {
                "type": "number",
                "description": "The median fee for tips per transaction."
               },
               "fees_tips_transaction_median_usd": {
                "type": "number",
                "description": "The median fee for tips per transaction, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_tips_transaction_mean": 0.00003649,
            "fees_tips_transaction_mean_usd": 0.06292327,
            "fees_tips_transaction_median": 1.1e-7,
            "fees_tips_transaction_median_usd": 0.00018107
           },
           {
            "date": "2026-06-13",
            "fees_tips_transaction_mean": 0.00002508,
            "fees_tips_transaction_mean_usd": 0.0421203,
            "fees_tips_transaction_median": 1.1e-7,
            "fees_tips_transaction_median_usd": 0.00017634
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/blockreward": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Blockreward",
    "description": "The sum of block rewards (including mining or staking rewards and transaction fees). We also provide this value in USD units.",
    "operationId": "getBlockrewardETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/blockreward?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/blockreward?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/blockreward?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/blockreward?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/blockreward?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The sum of block rewards (including mining or staking rewards and transaction fees). We also provide this value in USD units.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "blockreward",
               "blockreward_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "blockreward": {
                "type": "number",
                "description": "The sum of block rewards (including mining or staking rewards and transaction fees)."
               },
               "blockreward_usd": {
                "type": "number",
                "description": "The sum of block rewards (including mining or staking rewards and transaction fees), calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "blockreward": 80.40891551,
            "blockreward_usd": 138661.62
           },
           {
            "date": "2026-06-13",
            "blockreward": 64.53724664,
            "blockreward_usd": 108383.67
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/blockreward-except-uncle": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Blockreward Except Uncle",
    "description": "The sum of block rewards except uncle blocks. We also provide this value in USD units.",
    "operationId": "getBlockrewardExceptUncleETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/blockreward-except-uncle?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/blockreward-except-uncle?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/blockreward-except-uncle?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/blockreward-except-uncle?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/blockreward-except-uncle?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The sum of block rewards except uncle blocks. We also provide this value in USD units.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "blockreward_except_uncle",
               "blockreward_except_uncle_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "blockreward_except_uncle": {
                "type": "number",
                "description": "The sum of block rewards except uncle blocks."
               },
               "blockreward_except_uncle_usd": {
                "type": "number",
                "description": "The sum of block rewards except uncle blocks, calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "blockreward_except_uncle": 0,
            "blockreward_except_uncle_usd": 0
           },
           {
            "date": "2026-06-13",
            "blockreward_except_uncle": 0,
            "blockreward_except_uncle_usd": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/gas": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Gas",
    "description": "This endpoint returns the statistics related to gas used in all transactions. We provide the total amount of gas used as `gas_used_total`, the average amount of gas used as `gas_used_mean`, the average gas price as `gas_price_mean` in Gwei per gas, and the average gas limit as `gas_limit_mean`.",
    "operationId": "getGasETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/gas?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/gas?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/gas?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/gas?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/gas?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "gas_used_total, gas_used_mean, gas_price_mean, gas_limit_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "gas_used_total",
               "gas_used_mean",
               "gas_price_mean",
               "gas_limit_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "gas_used_total": {
                "type": "number",
                "description": "The total amount of gas used in that window."
               },
               "gas_used_mean": {
                "type": "number",
                "description": "The average amount of gas used per transaction."
               },
               "gas_price_mean": {
                "type": "number",
                "description": "The average gas price per transaction."
               },
               "gas_limit_mean": {
                "type": "number",
                "description": "The average gas limit per transaction."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "gas_used_total": 217494992834,
            "gas_used_mean": 98697.07,
            "gas_price_mean": 0.51560891,
            "gas_limit_mean": 232994.48
           },
           {
            "date": "2026-06-13",
            "gas_used_total": 217509739558,
            "gas_used_mean": 84529.12,
            "gas_price_mean": 0.4378504,
            "gas_limit_mean": 198590.61
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/base-fee": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Base Fee",
    "description": "Base Fee represents the base fee per gas used to burn the fees in Ethereum chain, introduced after London upgrade. `base_fee_mean` is the average value of the base fee per gas over the blocks in Gwei.",
    "operationId": "getBaseFeeETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/base-fee?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/base-fee?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/base-fee?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/base-fee?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/base-fee?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The average value of the base fee per gas over the blocks in Gwei.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "base_fee_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "base_fee_mean": {
                "type": "number",
                "description": "The average base fee per gas in that window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "base_fee_mean": 0.12202482
           },
           {
            "date": "2026-06-13",
            "base_fee_mean": 0.13375165
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/max-fee": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Max Fee",
    "description": "Max Fee represents the fee per gas that the user can maximally admit when submitting the transaction, introduced after London upgrade. `max_fee_mean` is the average value of the max fee per gas over the transactions in Gwei.",
    "operationId": "getMaxFeeETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/max-fee?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/max-fee?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/max-fee?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/max-fee?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/max-fee?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The average value of the max fee per gas over the transactions in Gwei.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "max_fee_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "max_fee_mean": {
                "type": "number",
                "description": "The average max fee per gas in that window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "max_fee_mean": 14.54897238
           },
           {
            "date": "2026-06-13",
            "max_fee_mean": 12.3717541
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/max-priority-fee": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Max Priority Fee",
    "description": "Max Priority Fee represents the fee per gas used to provide tips (fees) to the miner, introduced after London upgrade. `max_priority_fee_mean` is the average value of the max priority fee per gas over the transactions in Gwei.",
    "operationId": "getMaxPriorityFeeETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/max-priority-fee?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/max-priority-fee?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/max-priority-fee?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/max-priority-fee?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/max-priority-fee?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The average value of the max priority fee per gas over the transactions in Gwei.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "max_priority_fee_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "max_priority_fee_mean": {
                "type": "number",
                "description": "The average max priority fee per gas in that window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "max_priority_fee_mean": 0.40988084
           },
           {
            "date": "2026-06-13",
            "max_priority_fee_mean": 0.32739257
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/difficulty": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Difficulty",
    "description": "The mean difficulty of mining a new block.",
    "operationId": "getDifficultyETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/difficulty?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/difficulty?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/difficulty?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/difficulty?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/difficulty?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The mean difficulty of mining a new block.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "difficulty"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "difficulty": {
                "type": "number",
                "description": "The mean difficulty of mining a new block."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "difficulty": 0
           },
           {
            "date": "2026-06-13",
            "difficulty": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/hashrate": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Hashrate",
    "description": "The mean speed at which miners in the network are solving hash problems. It is displayed as hashes (GigaBytes) per second.",
    "operationId": "getHashrateETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/hashrate?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/hashrate?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/hashrate?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/hashrate?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/hashrate?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The mean speed at which hash problems are being solved across all miners in the network. It is displayed as hashes (Gigabytes) per second.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "hashrate"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "hashrate": {
                "type": "number",
                "description": "The mean speed at which hash problems are being solved across all miners in the network. It is displayed as hashes (Gigabytes) per second."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "hashrate": 0
           },
           {
            "date": "2026-06-13",
            "hashrate": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/uncle-block-count": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Uncle Block Count",
    "description": "The number of uncle blocks generated in a given window.",
    "operationId": "getUncleBlockCountETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/uncle-block-count?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/uncle-block-count?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/uncle-block-count?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/uncle-block-count?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/uncle-block-count?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of uncle blocks generated in a given window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "uncle_block_count"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "uncle_block_count": {
                "type": "number",
                "description": "The number of uncle blocks generated in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "uncle_block_count": 0
           },
           {
            "date": "2026-06-13",
            "uncle_block_count": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/network-data/uncle-blockreward": {
   "get": {
    "tags": [
     "ETH Network Data"
    ],
    "summary": "Uncle Blockreward",
    "description": "The sum of uncle block rewards (including mining or staking rewards and transaction fees). We also provide this value in USD units.",
    "operationId": "getUncleBlockrewardETH",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/network-data/uncle-blockreward?window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/network-data/uncle-blockreward?window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/network-data/uncle-blockreward?window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/network-data/uncle-blockreward?window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/network-data/uncle-blockreward?window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The sum of uncle block rewards (including mining or staking rewards and transaction fees). We also provide this value in USD units.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "uncle_blockreward",
               "uncle_blockreward_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "uncle_blockreward": {
                "type": "number",
                "description": "The sum of uncle block rewards (including mining or staking rewards and transaction fees)."
               },
               "uncle_blockreward_usd": {
                "type": "number",
                "description": "The sum of uncle block rewards (including mining or staking rewards and transaction fees), calculated in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "uncle_blockreward": 0,
            "uncle_blockreward_usd": 0
           },
           {
            "date": "2026-06-13",
            "uncle_blockreward": 0,
            "uncle_blockreward_usd": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/status/entity-list": {
   "get": {
    "tags": [
     "ETH Entity Status"
    ],
    "summary": "Entity List",
    "description": "This endpoint returns entity list to serve data.\nThe meaning of the `market_type` value of the exchange object is as follows. For exchange objects, the `market_type` field tells whether the exchange is a spot exchange or a derivative exchange. Entities without a market type, such as miners or banks, will return 0 for `market_type`.\n|  Exchange Market Type  |  Description         |\n|------------------------|----------------------|\n|  0                     |  Undefined           |\n|  1                     |  Spot Exchange       |\n|  2                     |  Derivative Exchange |",
    "operationId": "getETHEntityList",
    "parameters": [
     {
      "description": "A type from the entity in exchange.",
      "explode": false,
      "in": "query",
      "name": "type",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "exchange"
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/status/entity-list?type=exchange\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/status/entity-list?type=exchange\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/status/entity-list?type=exchange\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/status/entity-list?type=exchange\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/status/entity-list?type=exchange\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Entity list on a given type.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "type",
            "data"
           ],
           "properties": {
            "type": {
             "type": "string",
             "description": "Type of given entity list. This field is one of \"exchange\", \"miner\""
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "name",
               "symbol",
               "is_validated",
               "market_type"
              ],
              "properties": {
               "name": {
                "type": "string",
                "description": "The name of entity."
               },
               "symbol": {
                "type": "string",
                "description": "The name of calling symbol."
               },
               "is_validated": {
                "type": "integer",
                "description": "validated or in progress."
               },
               "market_type": {
                "type": "integer",
                "description": "Market type of entity."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "data": [
           {
            "name": "AAX",
            "symbol": "aax",
            "is_validated": 0,
            "market_type": 2,
            "is_spot": 0,
            "is_derivative": 1
           },
           {
            "name": "ABCC",
            "symbol": "abcc",
            "is_validated": 0,
            "market_type": 1,
            "is_spot": 1,
            "is_derivative": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/eth2/total-value-staked": {
   "get": {
    "tags": [
     "ETH 2.0"
    ],
    "summary": "Total Value Staked",
    "description": "This endpoint returns the valid ETH balance of the deposit contract.",
    "operationId": "ETHgetTotalValueStaked",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/eth2/total-value-staked?window=day&from=20201105&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/eth2/total-value-staked?window=day&from=20201105&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/eth2/total-value-staked?window=day&from=20201105&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/eth2/total-value-staked?window=day&from=20201105&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/eth2/total-value-staked?window=day&from=20201105&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The valid amount of ETH in the deposit contract on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "total_value_staked"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "total_value_staked": {
                "type": "number",
                "description": "The valid amount of ETH in the deposit contract."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "total_value_staked": 39782756.29
           },
           {
            "date": "2026-06-13",
            "total_value_staked": 39734193.4
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/eth2/staking-inflow-total": {
   "get": {
    "tags": [
     "ETH 2.0"
    ],
    "summary": "Staking Inflow Total",
    "description": "This endpoint returns the valid ETH inflow into the deposit contract.",
    "operationId": "ETHgetStakingInflowTotal",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/eth2/staking-inflow-total?window=day&from=20201105&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/eth2/staking-inflow-total?window=day&from=20201105&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/eth2/staking-inflow-total?window=day&from=20201105&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/eth2/staking-inflow-total?window=day&from=20201105&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/eth2/staking-inflow-total?window=day&from=20201105&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of ETH valid inflow to the deposit contract on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "staking_inflow_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "staking_inflow_total": {
                "type": "number",
                "description": "The amount of ETH valid inflow to the deposit contract."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "staking_inflow_total": 93719.6
           },
           {
            "date": "2026-06-13",
            "staking_inflow_total": 15115.66
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/eth2/staking-transaction-count": {
   "get": {
    "tags": [
     "ETH 2.0"
    ],
    "summary": "Staking Transaction Count",
    "description": "This endpoint returns the number of valid transactions to the deposit contract.",
    "operationId": "ETHgetStakingTransactionCount",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/eth2/staking-transaction-count?window=day&from=20201105&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/eth2/staking-transaction-count?window=day&from=20201105&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/eth2/staking-transaction-count?window=day&from=20201105&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/eth2/staking-transaction-count?window=day&from=20201105&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/eth2/staking-transaction-count?window=day&from=20201105&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of valid transactions to the deposit contract on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "staking_transaction_count"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "staking_transaction_count": {
                "type": "number",
                "description": "The number of valid transactions to the deposit contract."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "staking_transaction_count": 2650
           },
           {
            "date": "2026-06-13",
            "staking_transaction_count": 319
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/eth2/staking-validator-total": {
   "get": {
    "tags": [
     "ETH 2.0"
    ],
    "summary": "Staking Validator Total",
    "description": "This endpoint returns the number of total validators.",
    "operationId": "ETHgetStakingValidatorTotal",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/eth2/staking-validator-total?window=day&from=20201105&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/eth2/staking-validator-total?window=day&from=20201105&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/eth2/staking-validator-total?window=day&from=20201105&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/eth2/staking-validator-total?window=day&from=20201105&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/eth2/staking-validator-total?window=day&from=20201105&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of the number of total validators on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "staking_validator_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "staking_validator_total": {
                "type": "number",
                "description": "The number of the number of total validators."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "staking_validator_total": 2422443
           },
           {
            "date": "2026-06-13",
            "staking_validator_total": 2419793
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/eth2/depositor-count-total": {
   "get": {
    "tags": [
     "ETH 2.0"
    ],
    "summary": "Depositor Count Total",
    "description": "This endpoint returns the number of unique accounts who deposited over 32 ETH to the deposit contract.",
    "operationId": "ETHgetDepositorCountTotal",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-total?window=day&from=20201105&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-total?window=day&from=20201105&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-total?window=day&from=20201105&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-total?window=day&from=20201105&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-total?window=day&from=20201105&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of unique accounts who deposited over 32 ETH on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "depositor_count_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "depositor_count_total": {
                "type": "number",
                "description": "The number of unique accounts who deposited over 32 ETH."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "depositor_count_total": 2272659
           },
           {
            "date": "2026-06-13",
            "depositor_count_total": 2270031
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/eth2/depositor-count-new": {
   "get": {
    "tags": [
     "ETH 2.0"
    ],
    "summary": "Depositor Count New",
    "description": "This endpoint returns the number of new unique accounts who deposited over 32 ETH to the deposit contract.",
    "operationId": "ETHgetDepositorCountNew",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-new?window=day&from=20201105&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-new?window=day&from=20201105&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-new?window=day&from=20201105&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-new?window=day&from=20201105&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/eth2/depositor-count-new?window=day&from=20201105&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of new unique accounts who deposited over 32 ETH on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "depositor_count_new"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "depositor_count_new": {
                "type": "number",
                "description": "The number of new unique accounts who deposited over 32 ETH."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "depositor_count_new": 2628
           },
           {
            "date": "2026-06-13",
            "depositor_count_new": 293
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/eth2/staking-rate": {
   "get": {
    "tags": [
     "ETH 2.0"
    ],
    "summary": "Staking Rate",
    "description": "This endpoint returns the percentage of the balance of the ETH 2.0 deposit contract to the total supply.",
    "operationId": "ETHgetStakingRate",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/eth2/staking-rate?window=day&from=20201105&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/eth2/staking-rate?window=day&from=20201105&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/eth2/staking-rate?window=day&from=20201105&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/eth2/staking-rate?window=day&from=20201105&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/eth2/staking-rate?window=day&from=20201105&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The percentage of valid balance of the deposit contract to the total supply on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "staking_rate"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "staking_rate": {
                "type": "number",
                "description": "The percentage of valid balance of the deposit contract to the total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "staking_rate": 32.56
           },
           {
            "date": "2026-06-13",
            "staking_rate": 32.52
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/eth2/phase0-success-rate": {
   "get": {
    "tags": [
     "ETH 2.0"
    ],
    "summary": "Phase 0 Success Rate",
    "description": "This endpoint returns the percentage of the valid ETH balance of the deposit contract to 524,288 ETH.",
    "operationId": "ETHgetPhase0StakingRate",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/eth2/phase0-success-rate?window=day&from=20201105&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/eth2/phase0-success-rate?window=day&from=20201105&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/eth2/phase0-success-rate?window=day&from=20201105&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/eth2/phase0-success-rate?window=day&from=20201105&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/eth2/phase0-success-rate?window=day&from=20201105&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The percentage of valid balance of the deposit contract to 524,288 ETH on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "phase0_success_rate"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "phase0_success_rate": {
                "type": "number",
                "description": "The percentage of valid balance of the deposit contract to 524,288 ETH."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "phase0_success_rate": 16141.53
           },
           {
            "date": "2026-06-13",
            "phase0_success_rate": 16123.65
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/exchange-flows/reserve": {
   "get": {
    "tags": [
     "ETH Exchange Flows"
    ],
    "summary": "Reserve",
    "description": "This endpoint returns the full historical on-chain balance of Ethereum exchanges.\n\n**📖 Data Guide:** [Exchange Reserve](/data-guide/exchange/exchange-reserve) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetReserve",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of ETH on a given exchange on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "reserve",
               "reserve_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "reserve": {
                "type": "number",
                "description": "The amount of ETH on a given exchange."
               },
               "reserve_usd": {
                "type": "number",
                "description": "The USD value of ETH held by an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "reserve": 3766149.77,
            "reserve_usd": 6320142924.15
           },
           {
            "date": "2026-06-13",
            "reserve": 3741347,
            "reserve_usd": 6229972191.87
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/exchange-flows/netflow": {
   "get": {
    "tags": [
     "ETH Exchange Flows"
    ],
    "summary": "Netflow",
    "description": "The difference between coins flowing into exchanges and flowing out of exchanges. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetExchangeNetflow",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "netflow_total",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "netflow_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "netflow_total": {
                "type": "number",
                "description": "The difference between coins flowing into/out of exchanges."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "netflow_total": 24802.76
           },
           {
            "date": "2026-06-13",
            "netflow_total": 10070.98
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/exchange-flows/inflow": {
   "get": {
    "tags": [
     "ETH Exchange Flows"
    ],
    "summary": "Inflow",
    "description": "This endpoint returns the inflow of ETH into exchange wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into exchange wallets on a given day.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetInflow",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "inflow_total, inflow_top10, inflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "inflow_total",
               "inflow_top10",
               "inflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "inflow_total": {
                "type": "number",
                "description": "The total amount of ETH that transferred to the exchange."
               },
               "inflow_top10": {
                "type": "number",
                "description": "The total ETH amount of top 10 transactions (in terms of total ETH sent) flowing out of exchange wallets for every day that the exchange wallets we track have been live on the blockchain."
               },
               "inflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "inflow_total": 222131.55,
            "inflow_top10": 87047.44,
            "inflow_mean": 162.49564816,
            "inflow_mean_ma7": 41.40594607
           },
           {
            "date": "2026-06-13",
            "inflow_total": 188217.35,
            "inflow_top10": 84726.27,
            "inflow_mean": 127.34597432,
            "inflow_mean_ma7": 18.19228205
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/exchange-flows/outflow": {
   "get": {
    "tags": [
     "ETH Exchange Flows"
    ],
    "summary": "Outflow",
    "description": "This endpoint returns the outflow of ETH into exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing into exchange wallets on a given day.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetOutflow",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "outflow_total, outflow_top10, outflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "outflow_total",
               "outflow_top10",
               "outflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "outflow_total": {
                "type": "number",
                "description": "The total amount of ETH that traneferred from the exchange"
               },
               "outflow_top10": {
                "type": "number",
                "description": "The total ETH amount of top 10 transactions (in terms of total ETH sent) flowing out of exchange wallets for every day that the exchange wallets we track have been live on the blockchain."
               },
               "outflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent from an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "outflow_total": 197328.79,
            "outflow_top10": 80221.44,
            "outflow_mean": 4.01556315,
            "outflow_mean_ma7": 1.10593418
           },
           {
            "date": "2026-06-13",
            "outflow_total": 178146.37,
            "outflow_top10": 76032.09,
            "outflow_mean": 3.7259761,
            "outflow_mean_ma7": 0.5322823
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/exchange-flows/transactions-count": {
   "get": {
    "tags": [
     "ETH Exchange Flows"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns the number of transactions flowing in/out of Ethereum exchanges.\n\n**📖 Data Guide:** [Exchange Transactions Count](/data-guide/exchange/exchange-transactions-count) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetTransactionsCountEF",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_inflow, transactions_count_outflow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_inflow",
               "transactions_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "transactions_count_inflow": {
                "type": "number",
                "description": "The number of transactions sent to the exchange ."
               },
               "transactions_count_outflow": {
                "type": "number",
                "description": "The number of transactions sent from the exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_inflow": 1367,
            "transactions_count_outflow": 49141
           },
           {
            "date": "2026-06-13",
            "transactions_count_inflow": 1478,
            "transactions_count_outflow": 47812
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/exchange-flows/addresses-count": {
   "get": {
    "tags": [
     "ETH Exchange Flows"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns the number of addresses involved in inflow/outflow transactions.\n\n**📖 Data Guide:** [Exchange Addresses Count](/data-guide/exchange/exchange-addresses-count) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetAddressesCountEF",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of addresses evoking inflow/outflow transactions to exchange wallets",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_inflow",
               "addresses_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "addresses_count_inflow": {
                "type": "number",
                "description": "The number of addresses evoking inflow transactions to exchange wallets"
               },
               "addresses_count_outflow": {
                "type": "number",
                "description": "The number of addresses evoking outflow transactions from exchange wallets"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_inflow": 953,
            "addresses_count_outflow": 6133
           },
           {
            "date": "2026-06-13",
            "addresses_count_inflow": 1013,
            "addresses_count_outflow": 6732
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/market-data/price-ohlcv": {
   "get": {
    "tags": [
     "ETH Market Data"
    ],
    "summary": "Price OHLCV",
    "description": "This endpoint returns metrics related to ETH price. \nWe provide two types of price, CryptoQuant's ETH Index Price and USD or USDT price of ETH of global exchanges.\n\nPrice OHLCV data consists of five metrics. \n`open`, the opening price at the beginning of the window, `close`, USD closing price at the end of the window, \n`high`, the highest USD price in a given window, `low`, the lowest USD price in a given window, \nand `volume`, the total volume traded in a given window. \n\nAt this endpoint, metrics are calculated by Minute, Hour and Day.\n\nETH Index Price is calculated by taking VWAP(Volume Weighted Average Price) of ETH price data aggregated from all exchanges we provide. The exchanges we provide are as follows. \n\n<br/>\n\n### Supported Exchanges By Market\n\n| Name | Market  |    Supported Exchanges     |\n|--------|---------|----------------------------|\n| Spot   | `spot`  | All Exchange*, Binance, Binance US, Bitfinex, Bittrex, Coinbase Advanced, FTX**, Gemini, HTX Global, Kraken, OKX |\n| Perpetual   | `perpetual`  | All Exchange*, Binance, Bitmex, Bybit, Deribit, FTX**, HTX Global, OKX |\n\n> (*) Default exchange <br/>\n> (**) Use in cautions due to the deprecation (no data update)\n\nIn order to get USD or USDT price of ETH of specific exchange from above (eg. `ethusdt` pair of `binance`), \nyou must specify `market`, `exchange` and `symbol` of ETH pair.  \n\nFor `volume` metric, the unit of volume could be USD, USDT or ETH. \nThis is because exchanges have their own price data policy. All Exchange's `volume` is in ETH. \nPlease refer to volume unit of each exchange from below table.  \n\n<br/>\n\n### Supported Pairs By Exchange\n\n#### ◦ Spot\n| Name           |   Exchange       | Symbol                    |  Volume Unit |    Available Since   |\n|----------------|------------------|---------------------------|--------------|-------------------------------|\n| All Exchange   | `all_exchange`   |  `eth_usd`*                |    ETH       |  The earliest time in the exchanges below.      |\n| Binance        | `binance`        |  `eth_usdt`*               |    ETH       | 2017-08-17 04:00:00           |\n| Binance US     | `binance_us`     |  `eth_usd`* <br/>`eth_usdt` |    ETH       | 2019-09-18 14:58:00 <br/> 2019-09-23 08:36:00 |\n| Bitfinex       | `bitfinex`       |  `eth_usd`* <br/>`eth_usdt` |    ETH       | 2016-03-09 16:04:00 <br/> 2019-03-11 10:03:00 |\n| Bittrex        | `bittrex`        |  `eth_usd`* <br/>`eth_usdt` |    USD <br/> USDT | 2018-06-21 02:17:00 <br/> 2017-04-21 13:30:00 |\n| Coinbase Advanced   | `coinbase_advanced`   |  `eth_usd`*                |    ETH       | 2016-05-18 00:14:00 <br/>  \n| FTX**            | `ftx`            |  `eth_usd`* <br/>`eth_usdt` |    USD <br/> USDT | 2019-09-14 21:07:00 <br/> 2020-03-28 14:40:00 |\n| Gemini         | `gemini`         |  `eth_usd`*                |    ETH       | 2019-08-30 00:00:00           |\n| HTX Global   | `htx_global`   |  `eth_usdt`*               |    ETH       | 2019-11-19 00:00:00           |\n| Kraken         | `kraken`         |  `eth_usd`* <br/>`eth_usdt` |    ETH       | 2015-08-07 14:03:00 <br/> 2019-12-19 16:49:00 |\n| OKX            | `okx`           |  `eth_usdt`*               |    ETH       | 2019-10-01 00:00:00           |\n\n#### ◦ Perpetual\n|    Exchange    | Exchange Symbol  |     Pair Symbol               |    Volume         |    Historical Starting Point   |\n|----------------|------------------|-------------------------------|-------------------|--------------------------------|\n| All Exchange   | `all_exchange`   |  `eth_usd`*                   |    ETH            |  The earliest time in the exchanges below.         |\n| Binance        | `binance`        |  `eth_usd`* <br/> `eth_usdt`  |    Cont <br/> ETH | 2020-08-11 07:02:00 <br/> 2019-09-08 17:57:00 |\n| Bitmex         | `bitmex`         |  `eth_usd`*                   |    Cont           | 2015-09-25 12:34:00            |\n| Bybit          | `bybit`          |  `eth_usd`* <br/> `eth_usdt`  |    USD  <br/> ETH | 2018-11-14 16:00:00 <br/> 2020-03-25 10:36:00 |\n| Deribit        | `deribit`        |  `eth_usd`*                   |    USD            | 2018-08-14 10:34:00  |\n| FTX**            | `ftx`            |  `eth_usd`*                   |    USD            | 2019-07-20 12:35:00  |\n| HTX Global   | `htx_global`   |  `eth_usd`* <br/> `eth_usdt`  |    Cont <br/> ETH | 2020-03-25 09:45:00 <br/> 2020-10-21 09:08:00 |\n| OKX            | `okx`           |  `eth_usd`* <br/> `eth_usdt`  |    Cont <br/> ETH | 2019-03-30 00:00:00 <br/> 2019-12-25 00:00:00 |\n\n> (*) Default exchange <br/>\n> (**) Use in cautions due to the deprecation (no data update)\n\n> We calculate the OHLCV data of a day from the beginning of UTC 00:00:00. \n> However, the OHLCV data in official sites of HTX and OKX are calculated from the beginning of UTC 16:00:00. \n> Thus, be aware that there may be some intended discrepancy between those.\n\n<br/>\n\n### Supported Windows By Market\n\n|   Market  |   Supported Windows           |\n|-----------|-------------------------------|\n| Spot      | `min`, `hour`, `day*`         |\n| Perpetual | `min`, `hour`, `day*`         |\n\n> (*) Default symbol",
    "operationId": "getETHPriceOHLCV",
    "parameters": [
     {
      "description": "A market type from the table that we support. [See here](#operation/getETHPriceOHLCV)",
      "explode": false,
      "in": "query",
      "name": "market",
      "required": false,
      "schema": {
       "type": "string",
       "default": "spot"
      },
      "style": "form",
      "example": "spot"
     },
     {
      "description": "A exchange from the table that we support. [See here](#operation/getETHPriceOHLCV).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_exchange"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "A ETH pair symbol from the table that we support. [See here](#operation/getETHPriceOHLCV)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "eth_usd"
     },
     {
      "description": "A window from the table that we support. [See here](#operation/getETHPriceOHLCV)",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/market-data/price-ohlcv?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/market-data/price-ohlcv?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/market-data/price-ohlcv?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/market-data/price-ohlcv?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/market-data/price-ohlcv?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Price OHLCV Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open",
               "high",
               "low",
               "close",
               "volume"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "open": {
                "type": "number",
                "description": "opening price at the beginning of the window."
               },
               "high": {
                "type": "number",
                "description": "opening price at the end of the window."
               },
               "low": {
                "type": "number",
                "description": "The highest price in a given window."
               },
               "close": {
                "type": "number",
                "description": "The lowest price in a given window."
               },
               "volume": {
                "type": "number",
                "description": "The total traded amount in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open": 1678.28,
            "high": 1731.14,
            "low": 1653.21,
            "close": 1724.46,
            "volume": 404775.91
           },
           {
            "date": "2026-06-13",
            "open": 1665.34,
            "high": 1696.29,
            "low": 1660.89,
            "close": 1679.4,
            "volume": 273566.84
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/market-data/open-interest": {
   "get": {
    "tags": [
     "ETH Market Data"
    ],
    "summary": "Open Interest",
    "description": "This endpoint returns ETH Perpetual Open Interest from derivative exchanges. Supported exchanges for Open Interest are below. Note we unify the unit of return value to USD for each exchange where its contract specification may vary.\n\n| Name           |   Exchange     | Symbol |  Available Since   |\n|----------------|--------------|-------------|-----------------------------|\n| All Exchanges  |   `all_exchange` | `all_symbol`   | The earliest time in the exchanges below. |\n| Binance        |   `binance`  |    `all_symbol` <br/> `eth_usd` <br/> `eth_usdt`  | The earliest time in the symbols. <br/> 2020-08-18 00:00:00 <br/> 2020-05-14 00:00:00     |\n| Bitfinex       |   `bitfinex` |    `all_symbol` <br/> `eth_usdt`  | The earliest time in the symbols. <br/> 2020-06-01 00:00:00  |\n| Bitmex         |   `bitmex`   |    `all_symbol` <br/> `eth_usd`  | The earliest time in the symbols. <br/> 2019-03-30 00:00:00  |\n| Bybit          |   `bybit`    |    `all_symbol` <br/> `eth_usd` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2019-11-07 00:00:00 <br/> 2020-10-21 00:00:00 |\n| Deribit        |   `deribit`  |    `all_symbol` <br/> `eth_usd`  | The earliest time in the symbols. <br/> 2019-03-31 00:00:00        |\n| FTX**            |   `ftx`      |    `all_symbol` <br/> `eth_usd` | The earliest time in the symbols. <br/> 2020-05-09 00:00:00  |\n| Gate.io        |   `gate_io`  | `all_symbol` <br/> `eth_usd` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2020-07-01 00:00:00 <br/> 2020-07-01 00:00:00 |\n| HTX          |   `htx_global`    | `all_symbol` <br/> `eth_usd` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2020-06-24 00:00:00 <br/> 2021-08-26 05:00:00 |\n| Kraken         |   `kraken`   | `all_symbol` <br/> `eth_usd` | The earliest time in the symbols. <br/> 2019-03-30 00:00:00  |\n| OKX            |   `okx`     | `all_symbol` <br/> `eth_usd` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2019-09-05 00:00:00 <br/> 2020-01-01 00:00:00 |\n\n> (**) Use in cautions due to the deprecation (no data update)\n\n**📖 Data Guide:** [Open Interest](/data-guide/market/open-interest) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetOpenInterest",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/ETHgetOpenInterest).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/market-data/open-interest?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/market-data/open-interest?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/market-data/open-interest?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/market-data/open-interest?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/market-data/open-interest?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Open Interest in USD",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open_interest"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "open_interest": {
                "type": "string",
                "description": "The amount of open interest in the given period and exchange. The standard unit can differ from each exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open_interest": 5707800048.54
           },
           {
            "date": "2026-06-13",
            "open_interest": 5597341348.88
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/market-data/funding-rates": {
   "get": {
    "tags": [
     "ETH Market Data"
    ],
    "summary": "Funding Rates",
    "description": "Funding rates represents traders' sentiments of which position they bet on in perpetual swaps market. Positive funding rates implies that many traders are bullish and long traders pay funding to short traders. Negative funding rates implies many traders are bearish and short traders pay funding to long traders.\n\n| Name           |   Exchange     | Symbol |  Available Since   |\n|----------------|--------------|----|-------------------------|\n| All Exchanges  |   `all_exchange` | | The earliest time in the exchanges below. |\n| Binance        |   `binance`  | ETH-USDT  | 2019-11-29 00:00:00        |\n| Bybit          |   `bybit`    | ETH-USD | 2019-01-25 08:00:00        |\n| Bitmex         |   `bitmex`   | ETH-USD | 2018-08-02 12:00:00  |\n| Deribit        |   `deribit`  | ETH-PERPETUAL | 2019-10-04 00:00:00        |\n| HTX Global   |   `htx_global` | ETH-USD  | 2020-07-04 00:01:00       |\n| OKX            |   `okx`     | ETH-USD | 2019-04-02 02:00:00        |\n\n**📖 Data Guide:** [Funding Rates](/data-guide/market/funding-rates) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetFundingRates",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/getFundingRates).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "bitmex"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Funding Rates in percentage",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "funding_rates"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "funding_rates": {
                "type": "number",
                "description": "Funding rates in the given period and exchange. The standard unit is percentage."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "funding_rates": 0.02538812
           },
           {
            "date": "2026-06-13",
            "funding_rates": 0.04481653
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/market-data/taker-buy-sell-stats": {
   "get": {
    "tags": [
     "ETH Market Data"
    ],
    "summary": "Taker Buy Sell Stats",
    "description": "Taker Buy/Sell Stats represent takers' sentiment of which position they are taking in the market. This metric is calculated with perpetual swap trades in each exchange.\n`taker_buy_volume` is volume that takers buy.\n`taker_sell_volume` is volume that takers sell.\n`taker_total_volume` is the sum of `taker_buy_volume` and `taker_sell_volume`.\n`taker_buy_ratio` is the ratio of `taker_buy_volume` divided by `taker_total_volume`.\n`taker_sell_ratio` is the ratio of `taker_sell_volume` divided by `taker_total_volume`.\n`taker_buy_sell_ratio` is the ratio of `taker_buy_volume` divided by `taker_sell_volume`.\nNote we unify the unit of return value to USD for each exchange where its contract specification may vary.\n\n| Name           |   Exchange     | Symbol |  Available Since   |\n|----------------|--------------|------|-----------------------------|\n| All Exchanges  |   `all_exchange` | | The earliest time in the exchanges below. |\n| Binance        |   `binance`  | ETH-USDT | 2019-12-04 00:00:00        |\n| Bybit          |   `bybit`    | ETH-USD | 2019-12-04 00:00:00        |\n| Bitmex         |   `bitmex`   | ETH-USD | 2018-09-01 00:00:00  |\n| Deribit        |   `deribit`  | ETH-PERPETUAL | 2019-09-04 00:00:00       |\n| HTX Global   |   `htx_global`    | ETH-USD  | 2020-04-18 00:00:00       |\n| OKX            |   `okx`     | ETH-USD | 2019-08-04 00:00:00        |\n\n**📖 Data Guide:** [Taker Buy Sell Volume/Ratio](/data-guide/market/taker-buy-sell-volume-ratio) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetTakerBuySellStats",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/getLongShortStats).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "bitmex"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Taker Buy, Sell volume and ratio",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "taker_buy_volume",
               "taker_sell_volume",
               "taker_buy_ratio",
               "taker_sell_ratio",
               "taker_buy_sell_ratio"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "taker_buy_volume": {
                "type": "number",
                "description": "Volume that takers buy in the given period and exchange."
               },
               "taker_sell_volume": {
                "type": "number",
                "description": "Volume that takers sell in the given period and exchange."
               },
               "taker_buy_ratio": {
                "type": "number",
                "description": "The ratio of taker buy volume to taker total volume in the given period and exchange. Taker total volume is sum of taker buy and sell volume."
               },
               "taker_sell_ratio": {
                "type": "number",
                "description": "The ratio of taker sell volume to taker total volume in the given period and exchange. Taker total volume is sum of taker buy and sell volume."
               },
               "taker_buy_sell_ratio": {
                "type": "number",
                "description": "The ratio fo taker buy volume to taker sell volume in the given period and exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "taker_buy_volume": 9556982.25,
            "taker_sell_volume": 9979179.17,
            "taker_buy_ratio": 0.48919448,
            "taker_sell_ratio": 0.51080552,
            "taker_buy_sell_ratio": 0.95769222
           },
           {
            "date": "2026-06-13",
            "taker_buy_volume": 9203187.25,
            "taker_sell_volume": 9070073.38,
            "taker_buy_ratio": 0.50364231,
            "taker_sell_ratio": 0.49635769,
            "taker_buy_sell_ratio": 1.01467616
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/market-data/liquidations": {
   "get": {
    "tags": [
     "ETH Market Data"
    ],
    "summary": "Liquidations",
    "description": "Liquidations are sum of forced market orders to exit leveraged positions caused by price volatility. Liquidations indicate current price volatility and traders' sentiment which side they had been betting.\nNote that Binance's liquidation data collection policy has changed since [2021-04-27](https://binance-docs.github.io/apidocs/futures/en/#change-log), which makes the distribution of the data has changed after that.\n\n| Name           |   Exchange     |    Symbol    |   Available Since           |\n|----------------|----------------|--------------|-----------------------------|\n| All Exchanges  | `all_exchange` | `all_symbol` | The earliest time in the exchanges below. |\n| Binance        | `binance`      | `all_symbol` <br/> `eth_usdt` <br/> `eth_usd` | The earliest time in the symbols. <br/> 2019-11-30 00:00:00 <br/> 2020-08-21 00:00:00 |\n| Bitfinex       | `bitfinex`     | `all_symbol` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2019-09-17 00:00:00 |\n| Bitmex         | `bitmex`       | `all_symbol` <br/> `eth_usd` | The earliest time in the symbols. <br/> 2019-04-02 00:00:00 |\n| Bybit          | `bybit`        | `all_symbol` <br/> `eth_usd` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2020-12-20 00:00:00 <br/> 2020-12-18 00:00:00 |\n| Deribit        | `deribit`      | `all_symbol` <br/> `eth_usd` | The earliest time in the symbols. <br/> 2019-05-25 00:00:00 |\n| FTX**            | `ftx`          | `all_symbol` <br/> `eth_usd` | The earliest time in the symbols. <br/> 2019-08-04 00:00:00 |\n| Gate.io        | `gate_io`      | `all_symbol` <br/> `eth_usd` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2018-12-28 11:00:00 <br/> 2019-11-21 11:00:00 |\n| HTX Global   | `htx_global` | `all_symbol` <br/> `eth_usd` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2020-06-26 00:00:00 <br/> 2021-09-23 14:00:00 |\n| OKX            | `okx`          | `all_symbol` <br/> `eth_usd` <br/> `eth_usdt` | The earliest time in the symbols. <br/> 2020-12-20 00:00:00 <br/> 2020-12-17 00:00:00 |\n\n> (**) Use in cautions due to the deprecation (no data update)",
    "operationId": "ETHgetLiquidations",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/ETHgetLiquidations).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "deribit"
     },
     {
      "description": "A ETH pair symbol from the table that we support. [See here](#operation/ETHgetLiquidations)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_symbol"
      },
      "style": "form",
      "example": "eth_usd"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/market-data/liquidations?window=day&from=20191001&exchange=deribit\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/market-data/liquidations?window=day&from=20191001&exchange=deribit\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/market-data/liquidations?window=day&from=20191001&exchange=deribit\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/market-data/liquidations?window=day&from=20191001&exchange=deribit\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/market-data/liquidations?window=day&from=20191001&exchange=deribit\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Amount of long/short liquidations orders",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "long_liquidations",
               "short_liquidations",
               "long_liquidations_usd",
               "short_liquidations_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "long_liquidations": {
                "type": "number",
                "description": "Amount of liquidated orders in long positions."
               },
               "short_liquidations": {
                "type": "number",
                "description": "Amount of liquidated orders in short positions."
               },
               "long_liquidations_usd": {
                "type": "number",
                "description": "Amount of liquidated orders in long positions in USD."
               },
               "short_liquidations_usd": {
                "type": "number",
                "description": "Amount of liquidated orders in short positions in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "long_liquidations": 0,
            "short_liquidations": 0,
            "long_liquidations_usd": 0,
            "short_liquidations_usd": 0
           },
           {
            "date": "2026-06-13",
            "long_liquidations": 0,
            "short_liquidations": 0,
            "long_liquidations_usd": 0,
            "short_liquidations_usd": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/market-data/coinbase-premium-index": {
   "get": {
    "tags": [
     "ETH Market Data"
    ],
    "summary": "Coinbase Premium Index",
    "description": "Coinbase Premium Index is calculated as percent difference from Binance price(ETHUSDT) to Coinbase price(ETHUSD). Coinbase Premium Gap is calculated as gap between Coinbase price(ETHUSD) and Binance price(ETHUSDT). The higher the premium, the stronger the spot buying pressure from Coinbase.\n\n**📖 Data Guide:** [Coinbase Premium](/data-guide/fund-premium/coinbase-premium) — definition, interpretation, and chart examples.",
    "operationId": "getETHCoinbasePremiumIndex",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/market-data/coinbase-premium-index?window=day&from=20191001T000000&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Coinbase Premium Index in percentage and Coinbase Premium Gap",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "coinbase_premium_gap",
               "coinbase_premium_index"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=min or window=hour is used."
               },
               "coinbase_premium_gap": {
                "type": "number",
                "description": "The gap between Coinbase Advanced price(USD pair) and Binance price(USDT pair)."
               },
               "coinbase_premium_index": {
                "type": "number",
                "description": "The percent difference from Binance price(ETHUSDT) to Coinbase price(ETHUSD)."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "coinbase_premium_gap": -0.89,
            "coinbase_premium_index": -0.05157567
           },
           {
            "date": "2026-06-13",
            "coinbase_premium_gap": -0.88,
            "coinbase_premium_index": -0.05234419
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/market-data/capitalization": {
   "get": {
    "tags": [
     "ETH Market Data"
    ],
    "summary": "Capitalization",
    "description": "This endpoint returns metrics related to market capitalization. We provide `market_cap`, which is total market capitalization of ETH, calculated by multiplying the circulating supply with its USD price.\n\n**📖 Data Guide:** [Capitalization models](/data-guide/market/capitalization-models) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetCapitalization",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/market-data/capitalization?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/market-data/capitalization?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/market-data/capitalization?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/market-data/capitalization?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/market-data/capitalization?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Market capitalization of Ethereum, calculated by total_supply * price_usd_close.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "market_cap"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "market_cap": {
                "type": "number",
                "description": "Market capitalization of ETH, calculated by circulating_supply * price_usd_close."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "market_cap": 210700187940.5
           },
           {
            "date": "2026-06-13",
            "market_cap": 205189335584.23
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/fund-data/market-price-usd": {
   "get": {
    "tags": [
     "ETH Fund Data"
    ],
    "summary": "Market Price USD",
    "description": "The price of certain symbol (e.g. ethe) managed by each fund (e.g. Grayscale) reflects sentiment of investors in regulated markets. In this specific case, having single share of ETHE means having approximately 0.01 ETH invested to Grayscale. This endpoint returns metrics related to the US Dollar(USD) price of fund related stocks (e.g. ethe). We provide five metrics, `price_usd_open`, USD opening price at the beginning of the window, `price_usd_close`, USD closing price at the end of the window, `price_usd_high`, the highest USD price in a given window, `price_usd_low`, the lowest USD price in a given window, and `price_usd_adj_close`, USD adjusted closing price at the end of the window. All Symbol is not supported.\n\n**📖 Data Guide:** [Grayscale Ethereum Trust (ETHE)](/data-guide/fund-premium/grayscale-ethereum-trust-ethe) — definition, interpretation, and chart examples.",
    "operationId": "getETHMarketPriceUSD",
    "parameters": [
     {
      "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/ETH-Fund-Data)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "ethe"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/fund-data/market-price-usd?symbol=ethe&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/fund-data/market-price-usd?symbol=ethe&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/fund-data/market-price-usd?symbol=ethe&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/fund-data/market-price-usd?symbol=ethe&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/fund-data/market-price-usd?symbol=ethe&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Market Price OHLC and adjusted C Data in USD",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "price_usd_open",
               "price_usd_high",
               "price_usd_low",
               "price_usd_close",
               "price_usd_adj_close"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "price_usd_open": {
                "type": "number",
                "description": "USD opening price at the beginning of the window."
               },
               "price_usd_high": {
                "type": "number",
                "description": "The highest USD price in a given window."
               },
               "price_usd_low": {
                "type": "number",
                "description": "The lowest USD price in a given window."
               },
               "price_usd_close": {
                "type": "number",
                "description": "USD closing price at the end of the window."
               },
               "price_usd_adj_close": {
                "type": "number",
                "description": "USD adjusted closing price at the end of the window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-12",
            "price_usd_open": 13.47,
            "price_usd_high": 13.68,
            "price_usd_low": 13.36,
            "price_usd_close": 13.47,
            "price_usd_adj_close": 13.47
           },
           {
            "date": "2026-06-11",
            "price_usd_open": 13.32,
            "price_usd_high": 13.68,
            "price_usd_low": 13.19,
            "price_usd_close": 13.6,
            "price_usd_adj_close": 13.6
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/fund-data/market-volume": {
   "get": {
    "tags": [
     "ETH Fund Data"
    ],
    "summary": "Market Volume",
    "description": "The volume of certain symbol (e.g. ethe) managed by each fund (e.g. Grayscale) reflects sentiment of investors in regulated markets. This endpoint returns traded volume of fund related stocks (e.g. ethe). At this endpoint, metrics are calculated by Day. We provide one metric, `volume`, traded volume of the window.\n\n**📖 Data Guide:** [Grayscale Ethereum Trust (ETHE)](/data-guide/fund-premium/grayscale-ethereum-trust-ethe) — definition, interpretation, and chart examples.",
    "operationId": "getETHMarketVolume",
    "parameters": [
     {
      "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/ETH-Fund-Data)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "ethe"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/fund-data/market-volume?symbol=ethe&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/fund-data/market-volume?symbol=ethe&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/fund-data/market-volume?symbol=ethe&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/fund-data/market-volume?symbol=ethe&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/fund-data/market-volume?symbol=ethe&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Market Volume Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "volume"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "volume": {
                "type": "number",
                "description": "Traded volume of the window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-12",
            "volume": 2224300
           },
           {
            "date": "2026-06-11",
            "volume": 3225300
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/fund-data/market-premium": {
   "get": {
    "tags": [
     "ETH Fund Data"
    ],
    "summary": "Market Premium",
    "description": "The premium of certain symbol (e.g. ethe) is defined as (market price of the symbol - NAV) divided by NAV where NAV (Native Asset Value) is the current value of holdings (e.g. ETH price multiplied by ETH per Share). Higher the premium indicates market bullish, which also indicates downside risk. On the other hand, lower the premium indicates market bearish, which also indicates upside risk. All Symbol market premium is calculated by taking VWAP (Volume Weighted Average Ratio) of each fund data volume (usd).\n\n**📖 Data Guide:** [ETHE Premium or Discount](/data-guide/fund-premium/grayscale-ethereum-trust-ethe/ethe-premium-or-discount) — definition, interpretation, and chart examples.",
    "operationId": "getETHMarketPremium",
    "parameters": [
     {
      "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/ETH-Fund-Data)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "ethe"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/fund-data/market-premium?symbol=ethe&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/fund-data/market-premium?symbol=ethe&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/fund-data/market-premium?symbol=ethe&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/fund-data/market-premium?symbol=ethe&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/fund-data/market-premium?symbol=ethe&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Market Premium Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "market_premium"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "market_premium": {
                "type": "number",
                "description": "Market premium of the window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2019-10-02",
            "market_premium": null
           },
           {
            "date": "2019-10-01",
            "market_premium": null
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/fund-data/digital-asset-holdings": {
   "get": {
    "tags": [
     "ETH Fund Data"
    ],
    "summary": "Digital Asset Holdings",
    "description": "This endpoint returns digital asset holdings status of each fund. For example, Grayscale ETH Holdings along with ETHE represents how much ETH Grayscale is holding for its investment. This metric indicates stock market's sentiment where higher the value means bullish sentiment of investors in stock market.\n\n**📖 Data Guide:** [ETHE Digital Asset Holdings](/data-guide/fund-premium/grayscale-ethereum-trust-ethe/ethe-digital-asset-holdings) — definition, interpretation, and chart examples.",
    "operationId": "getETHDigitalAssetHoldings",
    "parameters": [
     {
      "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/ETH-Fund-Data)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "ethe"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/fund-data/digital-asset-holdings?symbol=ethe&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/fund-data/digital-asset-holdings?symbol=ethe&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/fund-data/digital-asset-holdings?symbol=ethe&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/fund-data/digital-asset-holdings?symbol=ethe&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/fund-data/digital-asset-holdings?symbol=ethe&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Digital Asset Holdings Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "digital_asset_holdings"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "digital_asset_holdings": {
                "type": "number",
                "description": "Digital Asset Holdings of the window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-12",
            "digital_asset_holdings": 808607.78
           },
           {
            "date": "2026-06-11",
            "digital_asset_holdings": 813141.15
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/flow-indicator/exchange-supply-ratio": {
   "get": {
    "tags": [
     "ETH Flow Indicator"
    ],
    "summary": "Exchange Supply Ratio",
    "description": "Exchange Supply Ratio is calculated as exchange reserve divided by total supply. The metric measures how much tokens are reserved in the exchange relative to total supply of the token.\n\n**📖 Data Guide:** [Exchange Supply Ratio](/data-guide/exchange/exchange-supply-ratio) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetExchangeSupplyRatio",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Ratio of reserved token in the exchange relative to total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "supply_ratio": {
                "type": "number",
                "description": "Ratio of reserved token in the exchange relative to total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "exchange_supply_ratio": 0.03198603
           },
           {
            "date": "2026-06-13",
            "exchange_supply_ratio": 0.03177537
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/eth/market-indicator/estimated-leverage-ratio": {
   "get": {
    "tags": [
     "ETH Market Indicator"
    ],
    "summary": "Estimated Leverage Ratio",
    "description": "By dividing the open interest of an exchange by their ETH reserve, you can estimate a relative average user leverage. Whenever the leverage value reaches a high, there is rapid volatility. Similar to Open Interest, but more accurate because it reflects the growth of the exchange itself. This is experimental indicator but it seems this reflects market sentiment. You can see how aggressive people are and how conservative they are in terms of investment. For 'In Progress' exchanges, estimated leverage ratio is not supported yet even though they provide open interest.\n__[Go to Data Guide‣](https://dataguide.cryptoquant.com/market-indicators/estimated-leverage-ratio)__\n\n**📖 Data Guide:** [Estimated Leverage Ratio](/data-guide/market/estimated-leverage-ratio) — definition, interpretation, and chart examples.",
    "operationId": "ETHgetEstimatedLeverageRatio",
    "parameters": [
     {
      "description": "A derivative exchange from the table that we support. [See here](#operation/ETHgetOpenInterest).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/eth/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/eth/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/eth/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/eth/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/eth/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of open interest of exchange divided by their ETH reserve",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "windwow",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "estimated_leverage_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "estimated_leverage_ratio": {
                "type": "number",
                "description": "The amount of open interest in the given period and exchange divided by the ETH reserve of given exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "estimated_leverage_ratio": 0.87885878
           },
           {
            "date": "2026-06-13",
            "estimated_leverage_ratio": 0.89084137
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/status/entity-list": {
   "get": {
    "tags": [
     "ERC20 Entity Status"
    ],
    "summary": "Entity List",
    "description": "This endpoint returns entity list to serve data.\nThe meaning of the `market_type` value of the exchange object is as follows. For exchange objects, the `market_type` field tells whether the exchange is a spot exchange or a derivative exchange. Entities without a market type, such as miners or banks, will return 0 for `market_type`.\n|  Exchange Market Type  |  Description         |\n|------------------------|----------------------|\n|  0                     |  Undefined           |\n|  1                     |  Spot Exchange       |\n|  2                     |  Derivative Exchange |",
    "operationId": "getERC20EntityList",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "A type from the entity in exchange.",
      "explode": false,
      "in": "query",
      "name": "type",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "exchange"
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/status/entity-list?token=link&type=exchange\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/status/entity-list?token=link&type=exchange\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/status/entity-list?token=link&type=exchange\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/status/entity-list?token=link&type=exchange\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/status/entity-list?token=link&type=exchange\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Entity list on a given type.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "type",
            "data"
           ],
           "properties": {
            "type": {
             "type": "string",
             "description": "Type of given entity list. This field is one of \"exchange\", \"miner\""
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "name",
               "symbol",
               "is_validated",
               "market_type"
              ],
              "properties": {
               "name": {
                "type": "string",
                "description": "The name of entity."
               },
               "symbol": {
                "type": "string",
                "description": "The name of calling symbol."
               },
               "is_validated": {
                "type": "integer",
                "description": "validated or in progress."
               },
               "market_type": {
                "type": "integer",
                "description": "Market type of entity."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "data": [
           {
            "name": "AAX",
            "symbol": "aax",
            "is_validated": 0,
            "market_type": 2,
            "is_spot": 0,
            "is_derivative": 1
           },
           {
            "name": "ABCC",
            "symbol": "abcc",
            "is_validated": 0,
            "market_type": 1,
            "is_spot": 1,
            "is_derivative": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/exchange-flows/reserve": {
   "get": {
    "tags": [
     "ERC20 Exchange Flows"
    ],
    "summary": "Reserve",
    "description": "This endpoint returns the full historical on-chain ERC20 token balance of exchanges.\n\n**📖 Data Guide:** [Exchange Reserve](/data-guide/exchange/exchange-reserve) — definition, interpretation, and chart examples.",
    "operationId": "ERC20GetReserve",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/ERC20-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/exchange-flows/reserve?token=link&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/reserve?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/reserve?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/reserve?token=link&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/exchange-flows/reserve?token=link&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of ERC20 token on a given exchange on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "reserve",
               "reserve_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "reserve": {
                "type": "number",
                "description": "The amount of ERC20 token held by an exchange."
               },
               "reserve_usd": {
                "type": "number",
                "description": "The USD value of ERC20 token held by an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "reserve": 84122235.99,
            "reserve_usd": 687588701.38
           },
           {
            "date": "2026-06-13",
            "reserve": 84206801.25,
            "reserve_usd": 671535910.84
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/exchange-flows/netflow": {
   "get": {
    "tags": [
     "ERC20 Exchange Flows"
    ],
    "summary": "Netflow",
    "description": "The difference between coins flowing into exchanges and flowing out of exchanges. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "ERC20GetExchangeNetflow",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/ERC20-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/exchange-flows/netflow?token=link&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/netflow?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/netflow?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/netflow?token=link&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/exchange-flows/netflow?token=link&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "netflow_total",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "netflow_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "netflow_total": {
                "type": "number",
                "description": "The difference between coins flowing into/out of exchanges."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "netflow_total": -84565.26
           },
           {
            "date": "2026-06-13",
            "netflow_total": -56641.56
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/exchange-flows/inflow": {
   "get": {
    "tags": [
     "ERC20 Exchange Flows"
    ],
    "summary": "Inflow",
    "description": "This endpoint returns the inflow of ERC20 token into exchange wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into exchange wallets on a given day.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "ERC20GetInflow",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/ERC20-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/exchange-flows/inflow?token=link&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/inflow?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/inflow?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/inflow?token=link&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/exchange-flows/inflow?token=link&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "inflow_total, inflow_top10, inflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "inflow_total",
               "inflow_top10",
               "inflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "inflow_total": {
                "type": "number",
                "description": "The total amount of ERC20 token that transferred to the exchange."
               },
               "inflow_top10": {
                "type": "number",
                "description": "The total ERC20 token amount of top 10 transactions (in terms of total tokens sent) flowing out of exchange wallets for every day that the exchange wallets we track have been live on the blockchain."
               },
               "inflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "inflow_total": 263274.33,
            "inflow_top10": 2771.31,
            "inflow_mean": 2556.06,
            "inflow_mean_ma7": 2582.95
           },
           {
            "date": "2026-06-13",
            "inflow_total": 302767.98,
            "inflow_top10": 3058.26,
            "inflow_mean": 2911.23,
            "inflow_mean_ma7": 2607.69
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/exchange-flows/outflow": {
   "get": {
    "tags": [
     "ERC20 Exchange Flows"
    ],
    "summary": "Outflow",
    "description": "This endpoint returns the outflow of ERC20 token into exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing into exchange wallets on a given day.\n\n**📖 Data Guide:** [Exchange In/Outflow and Netflow](/data-guide/exchange/exchange-in-outflow-and-netflow) — definition, interpretation, and chart examples.",
    "operationId": "ERC20GetOutflow",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/ERC20-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/exchange-flows/outflow?token=link&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/outflow?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/outflow?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/outflow?token=link&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/exchange-flows/outflow?token=link&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "outflow_total, outflow_top10, outflow_mean",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "outflow_total",
               "outflow_top10",
               "outflow_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "outflow_total": {
                "type": "number",
                "description": "The total amount of ERC20 token that transferred from the exchange"
               },
               "outflow_top10": {
                "type": "number",
                "description": "The total ERC20 token amount of top 10 transactions (in terms of total tokens sent) flowing out of exchange wallets for every day that the exchange wallets we track have been live on the blockchain."
               },
               "outflow_mean": {
                "type": "number",
                "description": "The mean of tokens per transaction sent from an exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "outflow_total": 347839.59,
            "outflow_top10": 1539.11,
            "outflow_mean": 1467.68,
            "outflow_mean_ma7": 1721.67
           },
           {
            "date": "2026-06-13",
            "outflow_total": 359409.54,
            "outflow_top10": 1824.41,
            "outflow_mean": 1797.05,
            "outflow_mean_ma7": 1705.54
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/exchange-flows/transactions-count": {
   "get": {
    "tags": [
     "ERC20 Exchange Flows"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns the number of transactions flowing in/out of ERC20 token exchanges.\n\n**📖 Data Guide:** [Exchange Transactions Count](/data-guide/exchange/exchange-transactions-count) — definition, interpretation, and chart examples.",
    "operationId": "ERC20GetTransactionsCountEF",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/ERC20-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/exchange-flows/transactions-count?token=link&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/transactions-count?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/transactions-count?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/transactions-count?token=link&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/exchange-flows/transactions-count?token=link&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_inflow, transactions_count_outflow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_inflow",
               "transactions_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "transactions_count_inflow": {
                "type": "number",
                "description": "The number of transactions sent to the exchange ."
               },
               "transactions_count_outflow": {
                "type": "number",
                "description": "The number of transactions sent from the exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_inflow": 103,
            "transactions_count_outflow": 237
           },
           {
            "date": "2026-06-13",
            "transactions_count_inflow": 104,
            "transactions_count_outflow": 200
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/exchange-flows/addresses-count": {
   "get": {
    "tags": [
     "ERC20 Exchange Flows"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns the number of addresses involved in inflow/outflow transactions.\n\n**📖 Data Guide:** [Exchange Addresses Count](/data-guide/exchange/exchange-addresses-count) — definition, interpretation, and chart examples.",
    "operationId": "ERC20GetAddressesCountEF",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/ERC20-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/exchange-flows/addresses-count?token=link&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/addresses-count?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/addresses-count?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/exchange-flows/addresses-count?token=link&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/exchange-flows/addresses-count?token=link&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of addresses evoking inflow/outflow transactions to exchange wallets",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_inflow",
               "addresses_count_outflow"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "addresses_count_inflow": {
                "type": "number",
                "description": "The number of addresses evoking inflow transactions to exchange wallets"
               },
               "addresses_count_outflow": {
                "type": "number",
                "description": "The number of addresses evoking outflow transactions from exchange wallets"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_inflow": 67,
            "addresses_count_outflow": 161
           },
           {
            "date": "2026-06-13",
            "addresses_count_inflow": 67,
            "addresses_count_outflow": 153
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/network-data/supply": {
   "get": {
    "tags": [
     "ERC20 Network Data"
    ],
    "summary": "Supply",
    "description": "This endpoint returns metrics related to the supply of ERC20 tokens, i.e. the amount of ERC20s tokens in existence. We currently provide three metrics, `supply_total`, the total amount of ERC20 tokens in existence, `supply_minted`, the amount of newly issued tokens, and `supply_burned`, the amount of newly burnt tokens in a given window.",
    "operationId": "getSupplyERC20",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/network-data/supply?token=link&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/network-data/supply?token=link&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/network-data/supply?token=link&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/network-data/supply?token=link&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/network-data/supply?token=link&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "supply_total, supply_minted, supply_burned.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_total",
               "supply_minted",
               "supply_burned"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "supply_total": {
                "type": "number",
                "description": "The total amount of ERC20 tokens in existence."
               },
               "supply_minted": {
                "type": "number",
                "description": "The sum of newly issued tokens in that window."
               },
               "supply_burned": {
                "type": "number",
                "description": "The sum of newly burnt tokens in that window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "supply_total": 1000000000,
            "supply_minted": 0,
            "supply_burned": 0
           },
           {
            "date": "2026-06-13",
            "supply_total": 1000000000,
            "supply_minted": 0,
            "supply_burned": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/network-data/velocity": {
   "get": {
    "tags": [
     "ERC20 Network Data"
    ],
    "summary": "Velocity",
    "description": "This endpoint returns metrics related to the velocity of ERC20 tokens. Velocity is calculated by dividing the trailing 1 year estimated transaction volume(the cumulated sum of transferred tokens) by current supply. Velocity is a metric that explains how actively is money circulating in the market.",
    "operationId": "getVelocityERC20",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/network-data/velocity?token=link&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/network-data/velocity?token=link&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/network-data/velocity?token=link&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/network-data/velocity?token=link&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/network-data/velocity?token=link&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Estimated transaction volume in the trailing 1 year divided by current total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "velocity_supply_total"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "velocity_supply_total": {
                "type": "number",
                "description": "Estimated transaction volume in the trailing 1 year divided by current total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "velocity_supply_total": 30.8385712
           },
           {
            "date": "2026-06-13",
            "velocity_supply_total": 30.83462383
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/network-data/transactions-count": {
   "get": {
    "tags": [
     "ERC20 Network Data"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns metrics related to the number of transactions. We provide several metrics, `transactions_count_total`, the total number of transactions, `transactions_count_mean`, the mean number of transactions. Note all events executed by the ERC20 contract are counted.",
    "operationId": "getTransactionsCountERC20",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/network-data/transactions-count?token=link&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/network-data/transactions-count?token=link&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/network-data/transactions-count?token=link&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/network-data/transactions-count?token=link&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/network-data/transactions-count?token=link&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_total, transactions_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_total",
               "transactions_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "transactions_count_total": {
                "type": "number",
                "description": "Total number of ERC20 events (transactions) in that window."
               },
               "transactions_count_mean": {
                "type": "number",
                "description": "The mean number of ERC20 events (transactions) per block. For window=block, this value will be same as transactions_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_total": 6275,
            "transactions_count_mean": 0.87517434
           },
           {
            "date": "2026-06-13",
            "transactions_count_total": 5715,
            "transactions_count_mean": 0.79673777
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/network-data/tokens-transferred-count": {
   "get": {
    "tags": [
     "ERC20 Network Data"
    ],
    "summary": "Tokens Transferred Count",
    "description": "This endpoint returns metrics related to the number of tokens transferred executed. We provide several metrics, `tokens_transferred_count_total`, the total number of executed tokens transferred, and `tokens_transferred_count_mean`, the mean number of executed tokens transferred. Note only successful transfers (value > 0) are counted.",
    "operationId": "getTokensTransferredCountERC20",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred-count?token=link&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred-count?token=link&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred-count?token=link&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred-count?token=link&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred-count?token=link&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_count_total, tokens_transferred_count_mean.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_count_total",
               "tokens_transferred_count_mean"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_count_total": {
                "type": "number",
                "description": "Total number of tokens transferred count in that window."
               },
               "tokens_transferred_count_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred count per block. For window=block, this value will be same as tokens_transferred_count_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_count_total": 5565,
            "tokens_transferred_count_mean": 0.77615063
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_count_total": 5043,
            "tokens_transferred_count_mean": 0.70305312
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/network-data/tokens-transferred": {
   "get": {
    "tags": [
     "ERC20 Network Data"
    ],
    "summary": "Tokens Transferred",
    "description": "This endpoint returns metrics related to the number of tokens transferred, i.e transaction volume. We provide several metrics, `tokens_transferred_total`, the total number of transferred tokens in that window, `tokens_transferred_mean`, the mean of transferred tokens per transaction in that window, and `tokens_transferred_median`, the median of tokens transferred per transaction.",
    "operationId": "getTokensTransferredERC20",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred?token=link&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred?token=link&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred?token=link&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred?token=link&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/network-data/tokens-transferred?token=link&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "tokens_transferred_total, tokens_transferred_mean, tokens_transferred_median.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median number of tokens transferred per block. For window=block, this value will be same as tokens_transferred_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 3947373.23,
            "tokens_transferred_mean": 709.32133503,
            "tokens_transferred_median": 28.17473972
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 2923733.98,
            "tokens_transferred_mean": 579.76085321,
            "tokens_transferred_median": 23.49775964
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/network-data/addresses-count": {
   "get": {
    "tags": [
     "ERC20 Network Data"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns metrics relating to the number of used to transfer the tokens. We provide several metrics, `addresses_count_active`, the total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window, `addresses_count_sender`, the number of addresses that were active as a sender, and `addresses_count_receiver`, the number of addresses that were active as a receiver.",
    "operationId": "getAddressesCountERC20",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/network-data/addresses-count?token=link&window=day\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/network-data/addresses-count?token=link&window=day\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/network-data/addresses-count?token=link&window=day\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/network-data/addresses-count?token=link&window=day\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/network-data/addresses-count?token=link&window=day\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "addresses_count_active, addresses_count_sender, addresses_count_receiver.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, 10min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_active",
               "addresses_count_sender",
               "addresses_count_receiver"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block, window=10min, or window=hour is used."
               },
               "addresses_count_active": {
                "type": "number",
                "description": "The number of addresses that were active (either sender or receiver) in ERC20 events (transactions)."
               },
               "addresses_count_sender": {
                "type": "number",
                "description": "The number of addresses that were active in ERC20 events (transactions) as a sender."
               },
               "addresses_count_receiver": {
                "type": "number",
                "description": "The number of addresses that were active in ERC20 events (transactions) as a receiver."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_sender": 1504,
            "addresses_count_receiver": 2154,
            "addresses_count_active": 2616
           },
           {
            "date": "2026-06-13",
            "addresses_count_sender": 1505,
            "addresses_count_receiver": 2148,
            "addresses_count_active": 2613
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/market-data/price-ohlcv": {
   "get": {
    "tags": [
     "ERC20 Market Data"
    ],
    "summary": "Price OHLCV",
    "description": "This endpoint returns metrics related to ERC20 Token's Index Price.  \n\nPrice OHLCV data consists of five metrics. \n`open`, the opening price at the beginning of the window, `close`, USD closing price at the end of the window, \n`high`, the highest USD price in a given window, `low`, the lowest USD price in a given window, \nand `volume`, the total token volume traded in a given window.  \n\nAt this endpoint, metrics are calculated by Minute, Hour and Day.\n\nERC20 Token Index Price is calculated by taking VWAP(Volume Weighted Average Price) of ERC20 Token price data aggregated from global exchanges. You can check supported exchanges [here](https://www.notion.so/cqlive/Stablecoins-ERC20-Exchange-List-e33b9baeae094fb090983dc1e1183b05).",
    "operationId": "getPriceOHLCVERC20",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/market-data/price-ohlcv?token=link&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/market-data/price-ohlcv?token=link&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/market-data/price-ohlcv?token=link&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/market-data/price-ohlcv?token=link&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/market-data/price-ohlcv?token=link&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Price OHLCV Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open",
               "high",
               "low",
               "close",
               "volume"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DDTHH:MM:SS (UTC time). This field only appears when window=block or window=min is used."
               },
               "open": {
                "type": "number",
                "description": "opening price at the beginning of the window."
               },
               "high": {
                "type": "number",
                "description": "opening price at the end of the window."
               },
               "low": {
                "type": "number",
                "description": "The highest price in a given window."
               },
               "close": {
                "type": "number",
                "description": "The lowest price in a given window."
               },
               "volume": {
                "type": "number",
                "description": "The total traded amount in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open": 7.9630843,
            "high": 8.17645119,
            "low": 7.77753342,
            "close": 8.17368551,
            "volume": 2758649.25
           },
           {
            "date": "2026-06-13",
            "open": 7.86081631,
            "high": 8.04289337,
            "low": 7.84410375,
            "close": 7.97484171,
            "volume": 2336588.6
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/erc20/flow-indicator/exchange-supply-ratio": {
   "get": {
    "tags": [
     "ERC20 Flow Indicator"
    ],
    "summary": "Exchange Supply Ratio",
    "description": "Exchange Supply Ratio is calculated as exchange reserve divided by total supply. The metric measures how much tokens are reserved in the exchange relative to total supply of the token.\n\n**📖 Data Guide:** [Exchange Supply Ratio](/data-guide/exchange/exchange-supply-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getExchangeSupplyRatioERC20",
    "parameters": [
     {
      "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "link"
     },
     {
      "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/ERC20-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/erc20/flow-indicator/exchange-supply-ratio?token=link&exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/erc20/flow-indicator/exchange-supply-ratio?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/erc20/flow-indicator/exchange-supply-ratio?token=link&exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/erc20/flow-indicator/exchange-supply-ratio?token=link&exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/erc20/flow-indicator/exchange-supply-ratio?token=link&exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Ratio of reserved token in the exchange relative to total supply.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_ratio"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "supply_ratio": {
                "type": "number",
                "description": "Ratio of reserved token in the exchange relative to total supply."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "exchange_supply_ratio": 0.08412224
           },
           {
            "date": "2026-06-13",
            "exchange_supply_ratio": 0.0842068
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/alt/market-data/price-ohlcv": {
   "get": {
    "tags": [
     "Alt Market Data"
    ],
    "summary": "Price OHLCV",
    "description": "This endpoint returns metrics related to Alt Token's Index Price.  \n\nPrice OHLCV data consists of five metrics. \n`open`, the opening price at the beginning of the window, `close`, USD closing price at the end of the window, \n`high`, the highest USD price in a given window, `low`, the lowest USD price in a given window, \nand `volume`, the total token volume traded in a given window.  \n\nAt this endpoint, metrics are calculated by Minute, Hour and Day. \n\nAlt Token Index Price is calculated by taking VWAP(Volume Weighted Average Price) of Alt Token price data aggregated from global exchanges.",
    "operationId": "getPriceOHLCVAlt",
    "parameters": [
     {
      "description": "A Alt token from the table that we support. [See here](#tag/Supported-Alt-List)",
      "explode": false,
      "in": "query",
      "name": "token",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "doge"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/alt/market-data/price-ohlcv?token=doge&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/alt/market-data/price-ohlcv?token=doge&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/alt/market-data/price-ohlcv?token=doge&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/alt/market-data/price-ohlcv?token=doge&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/alt/market-data/price-ohlcv?token=doge&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Price OHLCV Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open",
               "high",
               "low",
               "close",
               "volume"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DDTHH:MM:SS (UTC time). This field only appears when window=block or window=min is used."
               },
               "open": {
                "type": "number",
                "description": "The opening price at the beginning of the window."
               },
               "high": {
                "type": "number",
                "description": "The highest price in the given window."
               },
               "low": {
                "type": "number",
                "description": "The lowest price in the given window."
               },
               "close": {
                "type": "number",
                "description": "The closing price at the end of the window."
               },
               "volume": {
                "type": "number",
                "description": "The total traded amount in the given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open": 0.08775127,
            "high": 0.08904699,
            "low": 0.08558839,
            "close": 0.08882689,
            "volume": 435300445
           },
           {
            "date": "2026-06-13",
            "open": 0.08593755,
            "high": 0.08877048,
            "low": 0.08574909,
            "close": 0.08776378,
            "volume": 472710981
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/market-data/price-ohlcv": {
   "get": {
    "tags": [
     "XRP Market Data"
    ],
    "summary": "Price OHLCV",
    "description": "This endpoint returns metrics related to XRP's Price.\nPrice OHLCV data consists of five metrics. \n`open`, the opening price at the beginning of the window, `close`, USD closing price at the end of the window, \n`high`, the highest USD price in a given window, `low`, the lowest USD price in a given window,\nand `volume`, the total token volume traded in 24h.\n\n\n### Supported Exchanges By Market\n\n| Name | Market  |    Supported Exchanges     |\n|--------|---------|----------------------------|\n| Spot   | `spot`  | All Exchange*, Binance, Binance US, Bitfinex, Kucoin, Coinbase Advanced, Kraken, HTX Global |\n| Perpetual   | `perpetual`  | All Exchange*, Binance, Deribit, Bitmex, OKX |\n\n> (*) Default exchange <br/>\n\n### Supported Pairs By Exchange\n\n#### ◦ Spot\n\n| Name           |   Exchange     | Symbol |\n|----------------|--------------|----|\n| All Exchanges  |   `all_exchange` | `xrp_usd`* |\n| Binance        |   `binance`  | `xrp_usdt`* <br/> `xrp_fdusd`<br/> `xrp_btc`<br/> `xrp_eth`<br/> `xrp_bnb`<br/> `xrp_rub`<br/> `xrp_tusd`|\n| Binance US            |   `binance_us`     | `xrp_usdt`* |\n| Coinbase Advanced          |   `coinbase_advanced`    | `xrp_eur`<br/> `xrp_usdt`<br/> `xrp_usd`* |\n| Bitfinex         |   `bitfinex`   | `xrp_usdt`<br/> `xrp_btc`<br/> `xrp_usd`* |\n| HTX Global   |   `htx_global` | `xrp_usdt`*  |\n| Kucoin            |   `kucoin`     | `xrp_usdc`<br/> `xrp_tusd`<br/> `xrp_btc`<br/> `xrp_eth`<br/> `xrp_usdt`* |\n| Kraken            |   `kraken`     | `xrp_usdt`<br/> `xrp_eur`<br/> `xrp_aud`<br/> `xrp_eth`<br/> `xrp_btc`<br/> `xrp_usd`* |\n\n#### ◦ Perpetual\n\n| Name           |   Exchange     | Symbol |\n|----------------|--------------|----|\n| All Exchanges  |   `all_exchange` | `xrp_usd`* <br/> `xrp_usdt`|\n| Binance        |   `binance`  | `xrp_usd`*|\n| Deribit         |   `deribit`   | `xrp_usdc`* |\n| Okx         |   `okx`   | `xrp_usdt`* |\n| Bitmex            |   `bitmex`     | `xrp_usdt`<br/> `xrp_usd`* |\n\n### Supported Windows By Market\n\n|   Market  |   Supported Windows           |\n|-----------|-------------------------------|\n| Spot      | `min`, `hour`, `day*`         |\n| Perpetual | `min`, `hour`, `day*`         |",
    "operationId": "getPriceOHLCVXRP",
    "parameters": [
     {
      "description": "A market type from the table that we support. [See here](#operation/getPriceOHLCVXRP)",
      "explode": false,
      "in": "query",
      "name": "market",
      "required": false,
      "schema": {
       "type": "string",
       "default": "spot"
      },
      "style": "form",
      "example": "spot"
     },
     {
      "description": "A exchange from the table that we support. [See here](#operation/getPriceOHLCVXRP).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_exchange"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "A XRP pair symbol from the table that we support. [See here](#operation/getPriceOHLCVXRP)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "xrp_usd"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/market-data/price-ohlcv?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/market-data/price-ohlcv?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/market-data/price-ohlcv?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/market-data/price-ohlcv?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/market-data/price-ohlcv?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Price OHLCV Data",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, min, or block and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open",
               "high",
               "low",
               "close",
               "volume"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DDTHH:MM:SS (UTC time). This field only appears when window=block or window=min is used."
               },
               "open": {
                "type": "number",
                "description": "opening price at the beginning of the window."
               },
               "high": {
                "type": "number",
                "description": "opening price at the end of the window."
               },
               "low": {
                "type": "number",
                "description": "The highest price in a given window."
               },
               "close": {
                "type": "number",
                "description": "The lowest price in a given window."
               },
               "volume": {
                "type": "number",
                "description": "The total traded amount in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open": 1.1498387,
            "high": 1.1869,
            "low": 1.1268,
            "close": 1.1851,
            "volume": 16030257.89
           },
           {
            "date": "2026-06-13",
            "open": 1.13107597,
            "high": 1.1598,
            "low": 1.12924,
            "close": 1.149,
            "volume": 20368737.2
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/market-data/open-interest": {
   "get": {
    "tags": [
     "XRP Market Data"
    ],
    "summary": "Open Interest",
    "description": "This endpoint returns XRP Perpetual Open Interest from derivative exchanges. \n| Name           |   Exchange     | Symbol |\n|----------------|--------------|----|\n| All Exchanges  |   `all_exchange` | `all_symbol`* |\n| Binance        |   `binance`  | `xrp_usdt`<br/>`xrp_usd`<br/> `all_symbol`*|\n| Bybit          |   `bybit`    | `xrp_usdt`<br/>`xrp_usd`<br/> `all_symbol`*| \n| Bitmex         |   `bitmex`   | `xrp_usd`* | \n| HTX Global   |   `htx_global` | `xrp_usdt`*  |\n| Kraken         |   `kraken`   | `xrp_usd`* |  \n| OKX            |   `okx`     | `xrp_usdt`<br/>`xrp_usd`<br/> `all_symbol`* | \n| Bitfinex            |   `bitfinex`     | `xrp_usdt`* | \n\nSupported exchanges for Open Interest are available in Discovery section.\nNote we unify the unit of return value to USD for each exchange where its contract specification may vary.\n\n**📖 Data Guide:** [Open Interest](/data-guide/market/open-interest) — definition, interpretation, and chart examples.",
    "operationId": "XRPgetOpenInterest",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "A pair symbol (ticker) from the table that we support. [See here](#tag/XRPgetOpenInterest)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_symbol"
      },
      "style": "form",
      "example": "xrp_usdt"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/market-data/open-interest?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/market-data/open-interest?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/market-data/open-interest?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/market-data/open-interest?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/market-data/open-interest?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Open Interest in USD",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open_interest"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "open_interest": {
                "type": "string",
                "description": "The amount of open interest in the given period and exchange. The standard unit can differ from each exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open_interest": 486894921.36
           },
           {
            "date": "2026-06-13",
            "open_interest": 481899798.73
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/market-data/funding-rates": {
   "get": {
    "tags": [
     "XRP Market Data"
    ],
    "summary": "Funding Rates",
    "description": "Funding rates represents traders' sentiments of which position they bet on in perpetual swaps market. Positive funding rates implies that many traders are bullish and long traders pay funding to short traders. Negative funding rates implies many traders are bearish and short traders pay funding to long traders.\n| Name           |   Exchange     | Symbol |\n|----------------|--------------|----|\n| All Exchanges  |   `all_exchange` |`all_symbol`*|\n| Binance        |   `binance`  | `xrp_usdt`<br/>`xrp_usd`<br/>`all_symbol`* |\n| Bybit          |   `bybit`    | `xrp_usdt`<br/>`xrp_usd`<br/>`all_symbol`* | \n| Bitmex         |   `bitmex`   | `xrp_usd`* | \n| HTX Global   |   `htx_global` | `xrp_usd`* | \n| OKX            |   `okx`     | `xrp_usdt`<br/>`xrp_usd`<br/>`all_symbol`* |\n\n**📖 Data Guide:** [Funding Rates](/data-guide/market/funding-rates) — definition, interpretation, and chart examples.",
    "operationId": "XRPgetFundingRates",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "A pair symbol (ticker) from the table that we support. [See here](#tag/XRPgetFundingRates)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_symbol"
      },
      "style": "form",
      "example": "xrp_usdt"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/market-data/funding-rates?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Funding Rates in percentage",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "funding_rates"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "funding_rates": {
                "type": "number",
                "description": "Funding rates in the given period and exchange. The standard unit is percentage."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "funding_rates": -0.00737358
           },
           {
            "date": "2026-06-13",
            "funding_rates": -0.00320403
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/market-data/taker-buy-sell-stats": {
   "get": {
    "tags": [
     "XRP Market Data"
    ],
    "summary": "Taker Buy Sell Stats",
    "description": "Taker Buy/Sell Stats represent takers' sentiment of which position they are taking in the market. This metric is calculated with perpetual swap trades in each exchange.\n`taker_buy_volume` is volume that takers buy.\n`taker_sell_volume` is volume that takers sell.\n`taker_total_volume` is the sum of `taker_buy_volume` and `taker_sell_volume`.\n`taker_buy_ratio` is the ratio of `taker_buy_volume` divided by `taker_total_volume`.\n`taker_sell_ratio` is the ratio of `taker_sell_volume` divided by `taker_total_volume`.\n`taker_buy_sell_ratio` is the ratio of `taker_buy_volume` divided by `taker_sell_volume`.\nNote we unify the unit of return value to USD for each exchange where its contract specification may vary.\n| Name           |   Exchange     | Symbol |\n|----------------|--------------|----|\n| All Exchanges  |   `all_exchange` | `all_symbol`* |\n| Binance        |   `binance`  | `xrp_usdt`*  |\n| Bybit          |   `bybit`    | `xrp_usd`* | \n| Bitmex         |   `bitmex`   | `xrp_usd`* | \n| HTX Global   |   `htx_global` | `xrp_usd`*  | \n| OKX            |   `okx`     | `xrp_usd`* |\n\n**📖 Data Guide:** [Taker Buy Sell Volume/Ratio](/data-guide/market/taker-buy-sell-volume-ratio) — definition, interpretation, and chart examples.",
    "operationId": "XRPgetTakerBuySellStats",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/market-data/taker-buy-sell-stats?window=day&from=20191001&exchange=bitmex\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Taker Buy, Sell volume and ratio",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "taker_buy_volume",
               "taker_sell_volume",
               "taker_buy_ratio",
               "taker_sell_ratio",
               "taker_buy_sell_ratio"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "taker_buy_volume": {
                "type": "number",
                "description": "Volume that takers buy in the given period and exchange."
               },
               "taker_sell_volume": {
                "type": "number",
                "description": "Volume that takers sell in the given period and exchange."
               },
               "taker_buy_ratio": {
                "type": "number",
                "description": "The ratio of taker buy volume to taker total volume in the given period and exchange. Taker total volume is sum of taker buy and sell volume."
               },
               "taker_sell_ratio": {
                "type": "number",
                "description": "The ratio of taker sell volume to taker total volume in the given period and exchange. Taker total volume is sum of taker buy and sell volume."
               },
               "taker_buy_sell_ratio": {
                "type": "number",
                "description": "The ratio fo taker buy volume to taker sell volume in the given period and exchange."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "taker_buy_volume": 181117500.5,
            "taker_sell_volume": 185282731.6,
            "taker_buy_ratio": 0.49431601,
            "taker_sell_ratio": 0.50568399,
            "taker_buy_sell_ratio": 0.97751959
           },
           {
            "date": "2026-06-13",
            "taker_buy_volume": 127833902.66,
            "taker_sell_volume": 123505439.93,
            "taker_buy_ratio": 0.50861079,
            "taker_sell_ratio": 0.49138921,
            "taker_buy_sell_ratio": 1.03504674
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/market-data/liquidations": {
   "get": {
    "tags": [
     "XRP Market Data"
    ],
    "summary": "Liquidations",
    "description": "Liquidations are sum of forced market orders to exit leveraged positions caused by price volatility. Liquidations indicate current price volatility and traders' sentiment which side they had been betting.\nNote that Binance's liquidation data collection policy has changed since [2021-04-27](https://binance-docs.github.io/apidocs/futures/en/#change-log), which makes the distribution of the data has changed after that.\n| Name           |   Exchange     | Symbol |\n|----------------|--------------|----|\n| All Exchanges  |   `all_exchange` |`all_symbol`* |\n| Binance        |   `binance`  | `xrp_usdt`<br/> `xrp_usd`<br/> `all_symbol`* |\n| Bybit          |   `bybit`    | `xrp_usdt`<br/> `xrp_usd`<br/> `all_symbol`*| \n| Bitmex         |   `bitmex`   | `xrp_usd`* | \n| HTX Global   |   `htx_global` | `xrp_usdt`*| \n| OKX            |   `okx`     | `xrp_usdt`<br/> `xrp_usd`<br/> `all_symbol`*| \n| Bitfinex            |   `bitfinex`     | `xrp_usdt`* |",
    "operationId": "XRPgetLiquidations",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "A XRP pair symbol from the table that we support. [See here](#operation/XRPgetLiquidations)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_symbol"
      },
      "style": "form",
      "example": "xrp_usd"
     },
     {
      "description": "Currently we support `day`, `hour`, and `min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/market-data/liquidations?window=day&from=20191001&exchange=binance\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/market-data/liquidations?window=day&from=20191001&exchange=binance\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/market-data/liquidations?window=day&from=20191001&exchange=binance\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/market-data/liquidations?window=day&from=20191001&exchange=binance\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/market-data/liquidations?window=day&from=20191001&exchange=binance\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Amount of long/short liquidations orders",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "long_liquidations",
               "short_liquidations",
               "long_liquidations_usd",
               "short_liquidations_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "long_liquidations": {
                "type": "number",
                "description": "Amount of liquidated orders in long positions."
               },
               "short_liquidations": {
                "type": "number",
                "description": "Amount of liquidated orders in short positions."
               },
               "long_liquidations_usd": {
                "type": "number",
                "description": "Amount of liquidated orders in long positions in USD."
               },
               "short_liquidations_usd": {
                "type": "number",
                "description": "Amount of liquidated orders in short positions in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "long_liquidations": 386.23227677,
            "short_liquidations": 3863.66,
            "long_liquidations_usd": 434,
            "short_liquidations_usd": 4575
           },
           {
            "date": "2026-06-13",
            "long_liquidations": 15.03227518,
            "short_liquidations": 50.87522635,
            "long_liquidations_usd": 17,
            "short_liquidations_usd": 59
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/market-data/capitalization": {
   "get": {
    "tags": [
     "XRP Market Data"
    ],
    "summary": "Capitalization",
    "description": "This endpoint returns metrics related to market capitalization. First, we provide `market_cap`, which is total market capitalization of XRP, calculated by multiplying the total supply with its USD price.\n__[Go to Data Guide‣](https://userguide.cryptoquant.com/cryptoquant-metrics/market/capitalization-models)__\n\n**📖 Data Guide:** [Capitalization models](/data-guide/market/capitalization-models) — definition, interpretation, and chart examples.",
    "operationId": "XRPMarketDatagetCapitalization",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/market-data/capitalization?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/market-data/capitalization?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/market-data/capitalization?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/market-data/capitalization?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/market-data/capitalization?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "market_cap, realized_cap, average_cap, delta_cap, thermo_cap",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "market_cap"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "market_cap": {
                "type": "number",
                "description": "Market capitalization of XRP, calculated by total_supply * price_usd_close."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "market_cap": 114444942311.34
           },
           {
            "date": "2026-06-13",
            "market_cap": 114288766977.08
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/market-data/estimated-leverage-ratio": {
   "get": {
    "tags": [
     "XRP Market Data"
    ],
    "summary": "Estimated Leverage Ratio",
    "description": "Estimated Leverage Ratio indicates how much leverage is used by users on average. It is defined as the ratio of open interest divided by the reserve of an exchange. This information measures traders' sentiment whether they take a high risk or low risk.\n__[Go to User Guide‣](https://userguide.cryptoquant.com/cryptoquant-metrics/market/estimated-leverage-ratio)__\n\n<br/>\n\n> **Note:** This endpoint does not support Point-In-Time (PIT) accuracy due to periodic updates to wallet address clustering. Historical data may change as new exchange wallets are discovered, added, and validated.\n\n<br/>\n\n**📖 Data Guide:** [Estimated Leverage Ratio](/data-guide/market/estimated-leverage-ratio) — definition, interpretation, and chart examples.",
    "operationId": "XRPMarketDatagetEstimatedLeverageRatio",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently, we support `day`, `hour`, and `10min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/market-data/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/market-data/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/market-data/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/market-data/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/market-data/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "estimated levereage ratio",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or 10min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "estimated_leverage_ratio"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "estimated_leverage_ratio": {
                "type": "number",
                "description": "estimated leverage ratio"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "estimated_leverage_ratio": 0.18097342
           },
           {
            "date": "2026-06-13",
            "estimated_leverage_ratio": 0.17916634
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/entity-flows/reserve": {
   "get": {
    "tags": [
     "XRP Entity Flows"
    ],
    "summary": "Reserve",
    "description": "This endpoint returns the full historical on-chain balance of xrp ledger entities.",
    "operationId": "XRPgetReserveEF",
    "parameters": [
     {
      "description": "Currently, we support `day`, `hour`, and `10min`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "An exchange from the table that we support. [See here](#tag/XRP-Entity-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/entity-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/entity-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/entity-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/entity-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/entity-flows/reserve?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of XRP on a given entity on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or 10min and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "reserve",
               "reserve_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "reserve": {
                "type": "number",
                "description": "The amount of BTC on a given bank."
               },
               "reserve_usd": {
                "type": "number",
                "description": "The USD value of BTC held by an bank."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "reserve": 2690422317.44,
            "reserve_usd": 3182965358.81
           },
           {
            "date": "2026-06-13",
            "reserve": 2689678149.75,
            "reserve_usd": 3091580636.69
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/entity-flows/share": {
   "get": {
    "tags": [
     "XRP Entity Flows"
    ],
    "summary": "Share",
    "description": "This metric is calculated by dividing XRP holdings of the entity by the total supply",
    "operationId": "XRPgetShareEF",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "An exchange from the table that we support. [See here](#tag/XRP-Entity-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/entity-flows/share?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/entity-flows/share?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/entity-flows/share?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/entity-flows/share?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/entity-flows/share?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of XRP on a given entity on this window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "share"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "share": {
                "type": "number",
                "description": "The % of XRP held by an entity."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "share": 2.69080852
           },
           {
            "date": "2026-06-13",
            "share": 2.69006423
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/entity-flows/transactions-count": {
   "get": {
    "tags": [
     "XRP Entity Flows"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns the number of transactions flowing in/out of XRP Entities.",
    "operationId": "XRPgetTransactionsCountEF",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "An exchange from the table that we support. [See here](#tag/XRP-Entity-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/entity-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/entity-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/entity-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/entity-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/entity-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transactions_count_inflow, transactions_count_outflow",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_deposit",
               "transactions_count_withdraw"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "transactions_count_deposit": {
                "type": "number",
                "description": "The number of transactions sent to the entity."
               },
               "transactions_count_withdraw": {
                "type": "number",
                "description": "The number of transactions sent from the entity."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "transactions_count_deposit": "79",
            "transactions_count_withdraw": "87"
           },
           {
            "date": "2026-06-14",
            "transactions_count_deposit": "120",
            "transactions_count_withdraw": "134"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/entity-flows/inflow": {
   "get": {
    "tags": [
     "XRP Entity Flows"
    ],
    "summary": "Inflow",
    "description": "This endpoint returns the inflow of XRP into entity address for as far back as we track.",
    "operationId": "XRPgetInflowEF",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "An exchange from the table that we support. [See here](#tag/XRP-Entity-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/entity-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/entity-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/entity-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/entity-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/entity-flows/inflow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "inflow, inflow_usd",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "inflow",
               "inflow_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "inflow": {
                "type": "number",
                "description": "The total amount of XRP that transferred to the entity"
               },
               "inflow_usd": {
                "type": "number",
                "description": "The total amount of XRP that transferred to the entity denominated in dollars"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "inflow": "404923.82393900",
            "inflow_usd": "480024.52369914"
           },
           {
            "date": "2026-06-14",
            "inflow": "185927.88892400",
            "inflow_usd": "213874.93977082"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/entity-flows/outflow": {
   "get": {
    "tags": [
     "XRP Entity Flows"
    ],
    "summary": "Outflow",
    "description": "This endpoint returns the outflow of XRP out of entity address for as far back as we track.",
    "operationId": "XRPgetOutflowEF",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "An exchange from the table that we support. [See here](#tag/XRP-Entity-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/entity-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/entity-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/entity-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/entity-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/entity-flows/outflow?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "outflow, outflow_usd",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "outflow",
               "outflow_usd"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "outflow": {
                "type": "number",
                "description": "The total amount of XRP that transferred out of the entity"
               },
               "outflow_usd": {
                "type": "number",
                "description": "The total amount of XRP that transferred out of the entity denominated in dollars"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "outflow": "242815.23950300",
            "outflow_usd": "287849.86903334"
           },
           {
            "date": "2026-06-14",
            "outflow": "197065.18079700",
            "outflow_usd": "226686.29175428"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/entity-flows/addresses-count": {
   "get": {
    "tags": [
     "XRP Entity Flows"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns the number of addresses involved in inflow/outflow transactions.",
    "operationId": "XRPgetAddressesCountEF",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "An exchange from the table that we support. [See here](#tag/XRP-Entity-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/entity-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/entity-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/entity-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/entity-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/entity-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of addresses evoking inflow/outflow transactions to bank wallets",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_deposit",
               "addresses_count_withdraw"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "addresses_count_deposit": {
                "type": "number",
                "description": "The number of addresses evoking inflow transactions to entity"
               },
               "addresses_count_withdraw": {
                "type": "number",
                "description": "The number of addresses evoking outflow transactions from entity"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "addresses_count_deposit": "58",
            "addresses_count_withdraw": "43"
           },
           {
            "date": "2026-06-14",
            "addresses_count_deposit": "86",
            "addresses_count_withdraw": "82"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/entity-flows/whale-movements": {
   "get": {
    "tags": [
     "XRP Entity Flows"
    ],
    "summary": "Whale Movements",
    "description": "This endpoint returns the number of transactions involved in inflow/outflow transactions and the transfer volume",
    "operationId": "XRPgetWhaleMovements",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/entity-flows/whale-movements?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/entity-flows/whale-movements?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/entity-flows/whale-movements?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/entity-flows/whale-movements?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/entity-flows/whale-movements?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of transaction evoking inflow/outflow transactions to Whale address",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transaction_counts",
               "volume"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block or window=hour is used."
               },
               "transaction_counts": {
                "type": "integer",
                "description": "The number of transactions to/from whale"
               },
               "volume": {
                "type": "number",
                "description": "transaction volume to/from whale"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "transactions_count": "554",
            "volume": "4061507.98827800"
           },
           {
            "date": "2026-06-14",
            "transactions_count": "322",
            "volume": "2084299.48318700"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/flow-indicator/exchange-inflow-value-distribution": {
   "get": {
    "tags": [
     "XRP Flow Indicator"
    ],
    "summary": "Exchange Inflow Value Distribution",
    "description": "Exchange Inflow Value Distribution is a metric that shows the amount distribution of xrp tokens flowed into exchange wallets according to its value.",
    "operationId": "getExchangeInflowValueDistribution",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "exchange inflow's distribution band by the amount of the trasferred tokens(xrp) at once",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_1000_below",
               "range_1001_to_10000",
               "range_10001_to_100000",
               "range_100001_to_1000000",
               "range_1000000_over"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "range_1000_below": {
                "type": "number",
                "description": "Exchange Inflow distribution value of which transferred xrp value is 1000 or less."
               },
               "range_1001_to_10000": {
                "type": "number",
                "description": "Exchange Inflow distribution value of which transferred xrp value is more than 1000 or less than 10000."
               },
               "range_10001_to_100000": {
                "type": "number",
                "description": "Exchange Inflow distribution value of which transferred xrp value is more than 10000 or less than 100000."
               },
               "range_100001_to_1000000": {
                "type": "number",
                "description": "Exchange Inflow distribution value of which transferred xrp value is more than 1000 or less than 100000."
               },
               "range_1000000_over": {
                "type": "number",
                "description": "Exchange Inflow distribution value of which transferred xrp value is 1000000 or more."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "range_1000_below": "0E-8",
            "range_1001_to_10000": "0E-8",
            "range_10001_to_100000": "0E-8",
            "range_100001_to_1000000": "404923.82393900",
            "range_1000000_over": "0E-8"
           },
           {
            "date": "2026-06-14",
            "range_1000_below": "43.07083700",
            "range_1001_to_10000": "0E-8",
            "range_10001_to_100000": "29061.75233100",
            "range_100001_to_1000000": "156823.06575600",
            "range_1000000_over": "0E-8"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/flow-indicator/exchange-outflow-value-distribution": {
   "get": {
    "tags": [
     "XRP Flow Indicator"
    ],
    "summary": "Exchange Outflow Value Distribution",
    "description": "Exchange Outflow Value Distribution is a metric that shows the amount distribution of xrp tokens flowed out from exchange wallets according to its value.",
    "operationId": "getExchangeOutflowValueDistribution",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-value-distribution?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "exchange outflow's distribution band by the amount of the trasferred tokens(xrp) at once",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_1000_below",
               "range_1001_to_10000",
               "range_10001_to_100000",
               "range_100001_to_1000000",
               "range_1000000_over"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "range_1000_below": {
                "type": "number",
                "description": "Exchange Outflow distribution value of which transferred xrp value is 1000 or less."
               },
               "range_1001_to_10000": {
                "type": "number",
                "description": "Exchange Outflow distribution value of which transferred xrp value is more than 1000 or less than 10000."
               },
               "range_10001_to_100000": {
                "type": "number",
                "description": "Exchange Outflow distribution value of which transferred xrp value is more than 10000 or less than 100000."
               },
               "range_100001_to_1000000": {
                "type": "number",
                "description": "Exchange Outflow distribution value of which transferred xrp value is more than 1000 or less than 100000."
               },
               "range_1000000_over": {
                "type": "number",
                "description": "Exchange Outflow distribution value of which transferred xrp value is 1000000 or more."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "range_1000_below": "4493.91763300",
            "range_1001_to_10000": "21432.41498800",
            "range_10001_to_100000": "71885.50688200",
            "range_100001_to_1000000": "145003.40000000",
            "range_1000000_over": "0E-8"
           },
           {
            "date": "2026-06-14",
            "range_1000_below": "10837.21058200",
            "range_1001_to_10000": "14407.26021500",
            "range_10001_to_100000": "171820.71000000",
            "range_100001_to_1000000": "0E-8",
            "range_1000000_over": "0E-8"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/flow-indicator/exchange-inflow-count-value-distribution": {
   "get": {
    "tags": [
     "XRP Flow Indicator"
    ],
    "summary": "Exchange Inflow Count Value Distribution",
    "description": "Exchange Inflow Count Value Distribution is a metric that shows the number of transactions of xrp tokens flowed into exchange wallets according to its value segment.",
    "operationId": "getExchangeInflowCountValueDistribution",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-inflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "number of transactions of each exchange inflow's distribution band by the amount of the trasferred tokens(xrp) at once",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_1000_below",
               "range_1001_to_10000",
               "range_10001_to_100000",
               "range_100001_to_1000000",
               "range_1000000_over"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "range_1000_below": {
                "type": "number",
                "description": "Number of transactions of exchange inflow's value band of which transferred xrp value is 1000 or less."
               },
               "range_1001_to_10000": {
                "type": "number",
                "description": "Number of transactions of exchange inflow's value band of which transferred xrp value is more than 1000 or less than 10000."
               },
               "range_10001_to_100000": {
                "type": "number",
                "description": "Number of transactions of exchange inflow's value band of which transferred xrp value is more than 10000 or less than 100000."
               },
               "range_100001_to_1000000": {
                "type": "number",
                "description": "Number of transactions of exchange inflow's value band of which transferred xrp value is more than 1000 or less than 100000."
               },
               "range_1000000_over": {
                "type": "number",
                "description": "Number of transactions of exchange inflow's value band of which transferred xrp value is 1000000 or more."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "range_1000_below": 0,
            "range_1001_to_10000": 0,
            "range_10001_to_100000": 0,
            "range_100001_to_1000000": 2,
            "range_1000000_over": 0
           },
           {
            "date": "2026-06-14",
            "range_1000_below": 1,
            "range_1001_to_10000": 0,
            "range_10001_to_100000": 1,
            "range_100001_to_1000000": 1,
            "range_1000000_over": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/flow-indicator/exchange-outflow-count-value-distribution": {
   "get": {
    "tags": [
     "XRP Flow Indicator"
    ],
    "summary": "Exchange Outflow Count Value Distribution",
    "description": "Exchange Outflow Count Value Distribution is a metric that shows the number of transactions of xrp tokens flowed into exchange wallets according to its value segment.",
    "operationId": "getExchangeOutflowCountValueDistribution",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-outflow-count-value-distribution?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "number of transactions of each exchange outflow's distribution band by the amount of the trasferred tokens(xrp) at once",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "range_1000_below",
               "range_1001_to_10000",
               "range_10001_to_100000",
               "range_100001_to_1000000",
               "range_1000000_over"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "range_1000_below": {
                "type": "number",
                "description": "Number of transactions of exchange outflow's value band of which transferred xrp value is 1000 or less."
               },
               "range_1001_to_10000": {
                "type": "number",
                "description": "Number of transactions of exchange outflow's value band of which transferred xrp value is more than 1000 or less than 10000."
               },
               "range_10001_to_100000": {
                "type": "number",
                "description": "Number of transactions of exchange outflow's value band of which transferred xrp value is more than 10000 or less than 100000."
               },
               "range_100001_to_1000000": {
                "type": "number",
                "description": "Number of transactions of exchange outflow's value band of which transferred xrp value is more than 1000 or less than 100000."
               },
               "range_1000000_over": {
                "type": "number",
                "description": "Number of transactions of exchange outflow's value band of which transferred xrp value is 1000000 or more."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-15",
            "range_1000_below": 35,
            "range_1001_to_10000": 4,
            "range_10001_to_100000": 3,
            "range_100001_to_1000000": 1,
            "range_1000000_over": 0
           },
           {
            "date": "2026-06-14",
            "range_1000_below": 76,
            "range_1001_to_10000": 3,
            "range_10001_to_100000": 4,
            "range_100001_to_1000000": 0,
            "range_1000000_over": 0
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/flow-indicator/exchange-supply-ratio": {
   "get": {
    "tags": [
     "XRP Flow Indicator"
    ],
    "summary": "Exchange Supply Ratio",
    "description": "The ratio of exchange's xrp reserve compared to total supply of xrp.\n\n**📖 Data Guide:** [Exchange Supply Ratio](/data-guide/exchange/exchange-supply-ratio) — definition, interpretation, and chart examples.",
    "operationId": "XRPFlowIndicatorgetExchangeSupplyRatio",
    "parameters": [
     {
      "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "binance"
     },
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/flow-indicator/exchange-supply-ratio?exchange=binance&window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "exchange supply ratio",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "exchange_supply_ratio"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "exchange_supply_ratio": {
                "type": "number",
                "description": "exchange supply ratio"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "exchange_supply_ratio": 0.02690809
           },
           {
            "date": "2026-06-13",
            "exchange_supply_ratio": 0.02690064
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/addresses-count": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns metrics relating to the number of used XRP addresses. \n| Metric | Description |\n|--------|-------------|\n| `addresses_count_active` | The total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window. |\n| `addresses_count_sender` | The number of addresses that were active as a sender. |\n| `addresses_count_receiver` | The number of addresses that were active as a receiver. |",
    "operationId": "XRPNetworkDatagetAddressesCount",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/addresses-count?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/addresses-count?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/addresses-count?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/addresses-count?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/addresses-count?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The number of active addresses",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "active_account",
               "total_account",
               "sending_account",
               "recieving_account"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "active_account": {
                "type": "number",
                "description": "The total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window."
               },
               "total_account": {
                "type": "number",
                "description": "The total number of unique addresses"
               },
               "sending_account": {
                "type": "number",
                "description": "The number of addresses that were active as a sender."
               },
               "recieving_account": {
                "type": "number",
                "description": "The number of addresses that were active as a receiver."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "active_account": 16320,
            "sending_account": 15598,
            "receiving_account": 26766,
            "total_account": 8360175
           },
           {
            "date": "2026-06-13",
            "active_account": 15976,
            "sending_account": 15329,
            "receiving_account": 26856,
            "total_account": 8358179
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/velocity": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "Velocity",
    "description": "Velocity measures how quickly units circulate in the network. It is calculated by dividing on-chain transaction volume by market cap, effectively being the inverse of the NVT Ratio.",
    "operationId": "XRPNetworkDatagetVelocity",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/velocity?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/velocity?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/velocity?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/velocity?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/velocity?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "velocity",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "velocity"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "velocity": {
                "type": "number"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "velocity": 0.002055
           },
           {
            "date": "2026-06-13",
            "velocity": 0.001946
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/block-interval": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "Block Interval",
    "description": "The average time between blocks generated displayed in seconds.",
    "operationId": "XRPNetworkDatagetBlockInterval",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/block-interval?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/block-interval?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/block-interval?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/block-interval?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/block-interval?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The average time between blocks generated in seconds.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "data",
            "window"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "average_block_interval"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "average_block_interval": {
                "type": "number",
                "description": "The mean size(in bytes) of all blocks generated"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "average_block_interval": 3.82
           },
           {
            "date": "2026-06-13",
            "average_block_interval": 3.81
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/xrp-burnt": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "XRP Burnt",
    "description": "The amount of burnt XRP",
    "operationId": "getXRPBurnt",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/xrp-burnt?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/xrp-burnt?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/xrp-burnt?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/xrp-burnt?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/xrp-burnt?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Amount of xrp burnt",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "data",
            "window"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "xrp_burnt"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "xrp_burnt": {
                "type": "integer",
                "description": "The amount of xrp burnt"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "xrp_burnt": 325.711471
           },
           {
            "date": "2026-06-13",
            "xrp_burnt": 295.828023
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/ledger-count": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "Ledger Count",
    "description": "The number of ledgers(XRPL version of 'block') created",
    "operationId": "getLedgerCount",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/ledger-count?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/ledger-count?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/ledger-count?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/ledger-count?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/ledger-count?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Number of total ledger created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "total_ledgers"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "total_ledgers": {
                "type": "integer",
                "description": "Number of unspent transaction outputs."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "total_ledgers": 104929248
           },
           {
            "date": "2026-06-13",
            "total_ledgers": 104906625
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/fees": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "Fees",
    "description": "This endpoint returns the fees of xrpl chain",
    "operationId": "XRPNetworkDatagetFees",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/fees?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/fees?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/fees?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/fees?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/fees?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The amount of total fees of the blockchain",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "total_fees"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "total_fees": {
                "type": "number",
                "description": "fees per time frame in xrp"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "total_fees": 344.843928
           },
           {
            "date": "2026-06-13",
            "total_fees": 296.245328
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/transactions-count": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns metrics the total number of transactions.",
    "operationId": "XRPNetworkDatagetTransactionsCount",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/transactions-count?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/transactions-count?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/transactions-count?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/transactions-count?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/transactions-count?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Number of transactions in the given time frame",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "total_transactions_count"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "total_transactions_count": {
                "type": "number",
                "description": "Total number of transactions."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "total_transactions_count": 1118066
           },
           {
            "date": "2026-06-13",
            "total_transactions_count": 1125296
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/tokens-transferred": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "Tokens Transferred",
    "description": "This endpoint returns metrics the number of tokens transferred.",
    "operationId": "XRPNetworkDatagetTokensTransferred",
    "parameters": [
     {
      "description": "Currently we support `day`, `hour`, and `block`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/tokens-transferred?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/tokens-transferred?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/tokens-transferred?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/tokens-transferred?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/tokens-transferred?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Number of XRP transferred",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day, hour, or block, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "total_transfer_volume"
              ],
              "properties": {
               "blockheight": {
                "type": "string",
                "description": "The height of the block. This optional field only appears when window=block is used."
               },
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "datetime": {
                "type": "string",
                "description": "The date and time formatted as YYYY-MM-DD HH:MM:SS (UTC time). This field only appears when window=block is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "Total number of tokens transferred in that window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 205429096.05
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 194542904.5
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-data/supply": {
   "get": {
    "tags": [
     "XRP Network Data"
    ],
    "summary": "Supply",
    "description": "This endpoint returns total supply of XRP.",
    "operationId": "XRPNetworkDatagetSupply",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-data/supply?window=day&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-data/supply?window=day&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-data/supply?window=day&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-data/supply?window=day&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-data/supply?window=day&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Total amount xrp supply available",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_total"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "supply_total": {
                "type": "number",
                "description": "The total amount of XRP."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "supply_total": 99985647678.22
           },
           {
            "date": "2026-06-13",
            "supply_total": 99985647981.44
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/network-indicator/nvt": {
   "get": {
    "tags": [
     "XRP Network Indicator"
    ],
    "summary": "NVT",
    "description": "NVT(Network Value to Transaction) ratio is the network value(`supply_total` * `price_usd`) divided by `tokens_transferred_total`. `nvt` is a metric often used to determine whether the price is overvalued or not. The theory behind this indicator is that the value of the token depends on how actively transactions take place on the network.\n\n**📖 Data Guide:** [NVT Ratio](/data-guide/network/nvt-ratio) — definition, interpretation, and chart examples.",
    "operationId": "getNVT",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/network-indicator/nvt?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/network-indicator/nvt?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/network-indicator/nvt?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/network-indicator/nvt?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/network-indicator/nvt?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "NVT(Network Value to Transactions) Ratio is defined as the ratio of market capitalization divided by transacted volume in the specified window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "nvt"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "nvt": {
                "type": "number",
                "description": "NVT(Network Value to Transaction) ratio is the network value(supply_total) divided by tokens_transferred_total."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "nvt": 486.716097
           },
           {
            "date": "2026-06-13",
            "nvt": 513.951657
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/entity-status/entity-list": {
   "get": {
    "tags": [
     "XRP Entity Status"
    ],
    "summary": "Entity List",
    "description": "This endpoint returns entity list to serve data. \n\n|  Entity Type  |  Description         |\n|------------------------|----------------------|\n|  exchange                     |  centralized exchange       |\n|  builder                     |  entities contributing to xrp ledger |\n|  team                     |  xrp project related team or related individuals|\n|  foundation                     |  xrp foundation |\n|  custody                     |  custody service |\n|  otc                     |  otc service |\n|  bank                     |  bank |\n|  bridge                     |  bridge |",
    "operationId": "getXRPEntityList",
    "parameters": [
     {
      "description": "A type from the entity",
      "explode": false,
      "in": "query",
      "name": "type",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "exchange"
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/status/entity-list\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/status/entity-list\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/status/entity-list\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/status/entity-list\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/status/entity-list\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Entity list on a given type.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "type",
            "data"
           ],
           "properties": {
            "type": {
             "type": "string",
             "description": "Type of given entity list. This field is one of \"exchange\", \"miner\""
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "name",
               "symbol",
               "is_validated",
               "market_type"
              ],
              "properties": {
               "name": {
                "type": "string",
                "description": "The name of entity."
               },
               "symbol": {
                "type": "string",
                "description": "The name of calling symbol."
               },
               "is_validated": {
                "type": "integer",
                "description": "Entity is validated or in progress."
               },
               "market_type": {
                "type": "integer",
                "description": "Market type of entity."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "type": "string",
          "data": [
           {
            "symbol": "example"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/dex-data/volume": {
   "get": {
    "tags": [
     "XRP Dex Data"
    ],
    "summary": "Volume",
    "description": "XRP volume traded on XRPL DEX",
    "operationId": "getDexVolume",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/dex-data/volume?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/dex-data/volume?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/dex-data/volume?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/dex-data/volume?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/dex-data/volume?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "XRP volume traded on XRPL DEX",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "dex_volume"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "dex_volume": {
                "type": "number",
                "description": "XRP volume traded on XRPL DEX."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "dex_volume": 2123123.81
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/dex-data/transactions-count": {
   "get": {
    "tags": [
     "XRP Dex Data"
    ],
    "summary": "Transaction count",
    "description": "XRP transaction count traded on XRPL DEX",
    "operationId": "getDexTransactionCount",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/dex-data/transactions-count?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/dex-data/transactions-count?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/dex-data/transactions-count?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/dex-data/transactions-count?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/dex-data/transactions-count?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "transaction count of DEX trade",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transacions_count"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "transactions_count": {
                "type": "number",
                "description": "XRP transactions count traded on XRPL DEX."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-02-22",
            "transactions_count": "713335"
           },
           {
            "date": "2026-02-21",
            "transactions_count": "827927"
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/dex-data/liquidity": {
   "get": {
    "tags": [
     "XRP Dex Data"
    ],
    "summary": "Liquidity",
    "description": "USD Liquidity in DEX",
    "operationId": "getDexLiquidity",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/dex-data/liquidity?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/dex-data/liquidity?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/dex-data/liquidity?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/dex-data/liquidity?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/dex-data/liquidity?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "USD liquidity in DEX",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "liquidity"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "liquidity": {
                "type": "number",
                "description": "XRP transactions count traded on XRPL DEX."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "liquidity_usd": 104259453287.01
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/dex-data/dex-price": {
   "get": {
    "tags": [
     "XRP Dex Data"
    ],
    "summary": "XRP DEX Price",
    "description": "Price of XRP traded on DEX",
    "operationId": "getDexPrice",
    "parameters": [
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/dex-data/dex-price?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/dex-data/dex-price?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/dex-data/dex-price?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/dex-data/dex-price?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/dex-data/dex-price?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "Price of XRP traded on DEX",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "dex_price_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "dex_price_usd": {
                "type": "number",
                "description": "Price of XRP traded on XRP"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "dex_price": 1.407424
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/amm-data/price": {
   "get": {
    "tags": [
     "XRP AMM Data"
    ],
    "summary": "Price",
    "description": "This endpoint returns XRP exchange rate on AMM. Currently, we only cover non-XRP/XRP pairs.",
    "operationId": "getXrplAmmPrice",
    "parameters": [
     {
      "description": "An AMM pair from the table that we support. [See here](#tag/XRP-AMM-Data).",
      "explode": false,
      "in": "query",
      "name": "amm",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "mag-xrp"
     },
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/amm-data/price?window=day&from=20240601&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/amm-data/price?window=day&from=20240601&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/amm-data/price?window=day&from=20240601&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/amm-data/price?window=day&from=20240601&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/amm-data/price?window=day&from=20240601&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "XRP exchange rate on AMM",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "price_xrp",
               "price_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "price_xrp": {
                "type": "number",
                "description": "XRP exchange rate"
               },
               "price_usd": {
                "type": "number",
                "description": "USD exchange rate"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2024-03-23",
            "price_xrp": 648.08029308,
            "price_usd": 401.63659852
           },
           {
            "date": "2024-03-24",
            "price_xrp": 635.9036217,
            "price_usd": 403.28196389
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/amm-data/liquidity": {
   "get": {
    "tags": [
     "XRP AMM Data"
    ],
    "summary": "Liquidity",
    "description": "This endpoint returns the total amount of liquidity on AMM. Currently, we only cover non-XRP/XRP pairs.",
    "operationId": "getXrplAmmLiquidity",
    "parameters": [
     {
      "description": "An AMM pair from the table that we support. [See here](#tag/XRP-AMM-Data).",
      "explode": false,
      "in": "query",
      "name": "amm",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "mag-xrp"
     },
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/amm-data/liquidity?window=day&from=20240601&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/amm-data/liquidity?window=day&from=20240601&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/amm-data/liquidity?window=day&from=20240601&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/amm-data/liquidity?window=day&from=20240601&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/amm-data/liquidity?window=day&from=20240601&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The total amount of liquidity on AMM",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "liquidity_xrp",
               "liquidity_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "liquidity_xrp": {
                "type": "number",
                "description": "Total amount of liquidity in XRP"
               },
               "liquidity_usd": {
                "type": "number",
                "description": "Total amount of liquidity in USD"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2024-03-23",
            "liquidity_xrp": 9817.12,
            "liquidity_usd": 6083.99
           },
           {
            "date": "2024-03-24",
            "liquidity_xrp": 5381.33,
            "liquidity_usd": 3412.77
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/amm-data/fee": {
   "get": {
    "tags": [
     "XRP AMM Data"
    ],
    "summary": "Fee",
    "description": "This endpoint returns the trading fee on AMM. Currently, we only cover non-XRP/XRP pairs.",
    "operationId": "getXrplAmmFee",
    "parameters": [
     {
      "description": "An AMM pair from the table that we support. [See here](#tag/XRP-AMM-Data).",
      "explode": false,
      "in": "query",
      "name": "amm",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "mag-xrp"
     },
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/amm-data/fee?window=day&from=20240601&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/amm-data/fee?window=day&from=20240601&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/amm-data/fee?window=day&from=20240601&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/amm-data/fee?window=day&from=20240601&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/amm-data/fee?window=day&from=20240601&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The trading fee on AMM",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fee_percent"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "fee_percent": {
                "type": "number",
                "description": "Trading fee percentage"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2024-03-23",
            "fee_percent": 1
           },
           {
            "date": "2024-03-24",
            "fee_percent": 1
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/xrp/amm-data/swap-stats": {
   "get": {
    "tags": [
     "XRP AMM Data"
    ],
    "summary": "Swap Statistics",
    "description": "This endpoint returns the swap statistics on AMM. Currently, we only cover non-XRP/XRP pairs.",
    "operationId": "getXrplAmmSwapStatistics",
    "parameters": [
     {
      "description": "An AMM pair from the table that we support. [See here](#tag/XRP-AMM-Data).",
      "explode": false,
      "in": "query",
      "name": "amm",
      "required": true,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "mag-xrp"
     },
     {
      "description": "Currently, we support `day` and `hour`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/xrp/amm-data/swap-stats?window=day&from=20240601&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/xrp/amm-data/swap-stats?window=day&from=20240601&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/xrp/amm-data/swap-stats?window=day&from=20240601&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/xrp/amm-data/swap-stats?window=day&from=20240601&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/xrp/amm-data/swap-stats?window=day&from=20240601&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "description": "The swap statistics on AMM",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. It can be day or hour, and it depends on the user request."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "num_swaps",
               "num_traders"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "num_swaps": {
                "type": "number",
                "description": "Number of swaps"
               },
               "num_traders": {
                "type": "number",
                "description": "Number of traders"
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2024-03-23",
            "num_swaps": 64,
            "num_traders": 13
           },
           {
            "date": "2024-03-24",
            "num_swaps": 131,
            "num_traders": 21
           }
          ]
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/market-data/price-ohlcv": {
   "get": {
    "tags": [
     "TRX Market Data"
    ],
    "summary": "Price OHLCV",
    "description": "This endpoint returns metrics related to TRX's Price, Price OHLCV data consists of five metrics.<br/>\n| Metric | Description |\n|--------|-------------|\n| `open` | The opening price at the beginning of the window. |\n| `close` | The USD closing price at the end of the window. |\n| `high` | The highest USD price in a given window. |\n| `low` | The lowest USD price in a given window. |\n| `volume` | The total volume traded in a given window. |\n\n> (*) Default exchange <br />\n### Supported Exchanges By Market\n| Name | Market  |    Supported Exchanges     |\n|--------|---------|----------------------------|\n| Spot   | `spot`  | All Exchange* |\n\n### Supported Pairs By Exchange\n| Name           | Exchange       | Symbol     |\n|----------------|----------------|------------|\n|  All Exchanges | `all_exchange` | `trx_usd`* |\n\n### Supported Windows By Market\n|   Market  |   Supported Windows   |\n|-----------|-----------------------|\n| Spot      | `day*`                |",
    "operationId": "getPriceOHLCV",
    "parameters": [
     {
      "description": "A market type from the table that we support. [See here](#operation/getTRXPriceOHLCV)",
      "explode": false,
      "in": "query",
      "name": "market",
      "required": false,
      "schema": {
       "type": "string",
       "default": "spot"
      },
      "style": "form",
      "example": "spot"
     },
     {
      "description": "A exchange from the table that we support. [See here](#operation/getTRXPriceOHLCV).",
      "explode": false,
      "in": "query",
      "name": "exchange",
      "required": false,
      "schema": {
       "type": "string",
       "default": "all_exchange"
      },
      "style": "form",
      "example": "all_exchange"
     },
     {
      "description": "A TRX pair symbol from the table that we support. [See here](#operation/getTRXPriceOHLCV)",
      "explode": false,
      "in": "query",
      "name": "symbol",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "trx_usd"
     },
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/market-data/price-ohlcv?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/market-data/price-ohlcv?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/market-data/price-ohlcv?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/market-data/price-ohlcv?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/market-data/price-ohlcv?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "open",
               "high",
               "low",
               "close",
               "volume"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "open": {
                "type": "number",
                "description": "opening price at the beginning of the window."
               },
               "high": {
                "type": "number",
                "description": "The highest price in a given window."
               },
               "low": {
                "type": "number",
                "description": "The lowest price in a given window."
               },
               "close": {
                "type": "number",
                "description": "The opening price at the end of the window."
               },
               "volume": {
                "type": "number",
                "description": "The total traded amount in a given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "open": 0.31677138,
            "high": 0.32277067,
            "low": 0.31497196,
            "close": 0.32157152,
            "volume": 83986763.4
           },
           {
            "date": "2026-06-13",
            "open": 0.31510767,
            "high": 0.31823762,
            "low": 0.31458279,
            "close": 0.3167805,
            "volume": 61228288.7
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/market-data/capitalization": {
   "get": {
    "tags": [
     "TRX Market Data"
    ],
    "summary": "Capitalization",
    "description": "This endpoint returns metrics related to market capitalization.<br />\nWe provide `market_cap`, which is total market capitalization of TRX, calculated by multiplying the total supply with its USD price.<br />\n__[Go to Data Guide‣](https://userguide.cryptoquant.com/cryptoquant-metrics/market/capitalization-models)__\n\n**📖 Data Guide:** [Capitalization models](/data-guide/market/capitalization-models) — definition, interpretation, and chart examples.",
    "operationId": "TRXMarketDatagetCapitalization",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/market-data/capitalization?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/market-data/capitalization?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/market-data/capitalization?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/market-data/capitalization?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/market-data/capitalization?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "market_cap"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "market_cap": {
                "type": "number",
                "description": "Market capitalization of TRX, calculated by total_supply * price_usd_close."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-13",
            "market_cap": 30067895635.79
           },
           {
            "date": "2026-06-12",
            "market_cap": 29894649059.52
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/supply": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Supply",
    "description": "This endpoint returns the metrics related to the supply of TRX.\n| Metric | Description |\n|--------|-------------|\n| `supply_total` | The total amount of tokens in existence. |\n| `supply_circulating` | The amount of tokens that are circulating in the market. |\n| `supply_minted` | The amount of tokens minted in the given window. |\n| `supply_burned` | The amount of tokens burned in the given window. |\n| `supply_staked` | The amount of tokens staked in Tron Super Representative members. |",
    "operationId": "TRXNetworkDatagetSupply",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/supply?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/supply?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/supply?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/supply?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/supply?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "supply_total",
               "supply_circulating",
               "supply_minted",
               "supply_burned",
               "supply_staked"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "supply_total": {
                "type": "number",
                "description": "The total amount of TRX."
               },
               "supply_circulating": {
                "type": "number",
                "description": "The circulating amount of TRX."
               },
               "supply_minted": {
                "type": "number",
                "description": "The minted amount of TRX."
               },
               "supply_burned": {
                "type": "number",
                "description": "The burned amount of TRX."
               },
               "supply_staked": {
                "type": "number",
                "description": "The staked amount of TRX."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-13",
            "supply_total": 94829237976,
            "supply_circulating": 48892422853,
            "supply_minted": 3915712,
            "supply_burned": 2037865,
            "supply_staked": 45936815123
           },
           {
            "date": "2026-06-12",
            "supply_total": 94827360130,
            "supply_circulating": 48896429643,
            "supply_minted": 3915712,
            "supply_burned": 2750027,
            "supply_staked": 45930930487
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/transactions-count": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Transactions Count",
    "description": "This endpoint returns metrics related to the number of transactions.\n| Metric | Description |\n|--------|-------------|\n| `transactions_count_total` | The total number of transactions. |\n| `transactions_count_mean` | The mean number of transactions. |",
    "operationId": "TRXNetworkDatagetTransactionsCount",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/transactions-count?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/transactions-count?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/transactions-count?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/transactions-count?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/transactions-count?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "transactions_count_total",
               "transactions_count_mean"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "transactions_count_total": {
                "type": "number",
                "description": "The total number of transactions."
               },
               "transactions_count_mean": {
                "type": "number",
                "description": "The mean number of transactions."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "transactions_count_total": 12406368,
            "transactions_count_mean": 430.8963601
           },
           {
            "date": "2026-06-13",
            "transactions_count_total": 11988313,
            "transactions_count_mean": 416.3765282
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/addresses-count": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Addresses Count",
    "description": "This endpoint returns metrics relating to the number of used TRX addresses. \n| Metric | Description |\n|--------|-------------|\n| `addresses_count_active` | The total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window. |\n| `addresses_count_sender` | The number of addresses that were active as a sender. |\n| `addresses_count_receiver` | The number of addresses that were active as a receiver. |",
    "operationId": "TRXNetworkDatagetAddressesCount",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/addresses-count?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/addresses-count?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/addresses-count?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/addresses-count?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/addresses-count?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "addresses_count_active",
               "addresses_count_sender",
               "addresses_count_receiver"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "addresses_count_active": {
                "type": "number",
                "description": "The total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window."
               },
               "addresses_count_sender": {
                "type": "number",
                "description": "The number of addresses that were active as a sender."
               },
               "addresses_count_receiver": {
                "type": "number",
                "description": "The number of addresses that were active as a receiver."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "addresses_count_sender": 4357087,
            "addresses_count_receiver": 1795380,
            "addresses_count_active": 6152467
           },
           {
            "date": "2026-06-13",
            "addresses_count_sender": 4168783,
            "addresses_count_receiver": 1812158,
            "addresses_count_active": 5980941
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/tokens-transferred": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Tokens Transferred",
    "description": "This endpoint returns metrics related to the number of tokens transferred.\n| Metric | Description |\n|--------|-------------|\n| `tokens_transferred_total` | The total number of transferred tokens in that window. |\n| `tokens_transferred_mean` | The mean of transferred tokens per transaction in that window. |\n| `tokens_transferred_median` | The median of tokens transferred per transaction in that window. |",
    "operationId": "TRXNetworkDatagetTokensTransferred",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/tokens-transferred?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/tokens-transferred?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/tokens-transferred?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/tokens-transferred?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/tokens-transferred?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tokens_transferred_total",
               "tokens_transferred_mean",
               "tokens_transferred_median"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "tokens_transferred_total": {
                "type": "number",
                "description": "The total number of tokens transferred."
               },
               "tokens_transferred_mean": {
                "type": "number",
                "description": "The mean number of tokens transferred."
               },
               "tokens_transferred_median": {
                "type": "number",
                "description": "The median number of tokens transferred."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tokens_transferred_total": 3429434393.07,
            "tokens_transferred_mean": 184219.72,
            "tokens_transferred_median": 141.725955
           },
           {
            "date": "2026-06-13",
            "tokens_transferred_total": 5439114782.36,
            "tokens_transferred_mean": 249420.59,
            "tokens_transferred_median": 78.909761
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/block-count": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Block Count",
    "description": "The number of blocks generated in a given window.",
    "operationId": "TRXNetworkDatagetBlockCount",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/block-count?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/block-count?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/block-count?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/block-count?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/block-count?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "block_count"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "block_count": {
                "type": "number",
                "description": "The number of blocks."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "block_count": 28792
           },
           {
            "date": "2026-06-13",
            "block_count": 28792
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/fees": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Fees",
    "description": "This endpoint returns the statistics related to fees paid from executing transactions\n| Metric | Description |\n|--------|-------------|\n| `fees_total` | The sum of all fees paid from executing transactions. |\n| `fees_total_usd` | The sum of all fees paid from executing transactions, calculated in USD. |\n| `fees_block_mean` | The average fee per block. |\n| `fees_block_mean_usd` | The average fee per block, calculated in USD. |",
    "operationId": "TRXNetworkDatagetFees",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/fees?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/fees?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/fees?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/fees?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/fees?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "fees_total",
               "fees_total_usd",
               "fees_block_mean",
               "fees_block_mean_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "fees_total": {
                "type": "number",
                "description": "The total fees."
               },
               "fees_total_usd": {
                "type": "number",
                "description": "The total fees in USD."
               },
               "fees_block_mean": {
                "type": "number",
                "description": "The mean fees per block."
               },
               "fees_block_mean_usd": {
                "type": "number",
                "description": "The mean fees per block in USD."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "fees_block_mean": 615.90931202,
            "fees_block_mean_usd": 197.23326765,
            "fees_total": 17733260.91,
            "fees_total_usd": 5678740.24
           },
           {
            "date": "2026-06-13",
            "fees_block_mean": 600.07383195,
            "fees_block_mean_usd": 190.30094453,
            "fees_total": 17277325.77,
            "fees_total_usd": 5479144.79
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/tps": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "TPS",
    "description": "This endpoint returns the statistics related to the number of transactions per second.\n| Metric | Description |\n|--------|-------------|\n| `tps` | The number of transactions per second. |",
    "operationId": "getTps",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/tps?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/tps?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/tps?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/tps?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/tps?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "tps"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "tps": {
                "type": "number",
                "description": "The number of transactions per second."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "tps": 143.59222222
           },
           {
            "date": "2026-06-13",
            "tps": 138.75362269
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/total-value-staked": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Total Value Staked",
    "description": "This endpoint returns the total amount of TRX staked by staking model. (Stake 1.0, Stake 2.0)\nThis metric reflects how much TRX has been locked to secure the network and obtain resources or staking rewards.\n| Metric | Description |\n|--------|-------------|\n| `v1_staking_amount` | The amount of TRX staked under Stake 1.0. (The legacy staking model on TRON) |\n| `v2_staking_amount` | The amount of TRX staked under Stake 2.0. (The newer staking model on TRON) |",
    "operationId": "getTotalValueStaked",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/total-value-staked?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/total-value-staked?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/total-value-staked?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/total-value-staked?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/total-value-staked?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "v1_staking_amount",
               "v2_staking_amount"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "v1_staking_amount": {
                "type": "number",
                "description": "The amount of TRX staked in v1."
               },
               "v2_staking_amount": {
                "type": "number",
                "description": "The amount of TRX staked in v2."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-13",
            "v1_staking_amount": 18122510708,
            "v2_staking_amount": 27814304415
           },
           {
            "date": "2026-06-12",
            "v1_staking_amount": 18122537428,
            "v2_staking_amount": 27808393059
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/staking-rate": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Staking Rate",
    "description": "This endpoint returns the staking rate of TRX.\n| Metric | Description |\n|--------|-------------|\n| `staking_rate` | The staking rate of TRX. |",
    "operationId": "getStakingRate",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/staking-rate?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/staking-rate?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/staking-rate?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/staking-rate?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/staking-rate?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "staking_rate"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "staking_rate": {
                "type": "number",
                "description": "The staking rate of TRX."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-13",
            "staking_rate": 0.48441616
           },
           {
            "date": "2026-06-12",
            "staking_rate": 0.48436369
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/network-data/energy-stake": {
   "get": {
    "tags": [
     "TRX Network Data"
    ],
    "summary": "Energy Stake",
    "description": "This endpoint returns the statistics related to the amount of TRX staked for Energy.\n| Metric | Description |\n|--------|-------------|\n| `total_energy_weight` | The total amount of TRX staked for Energy. |\n| `energy_rate` | The percentage of TRX staked for Energy. |",
    "operationId": "getEnergyStake",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/network-data/energy-stake?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/network-data/energy-stake?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/network-data/energy-stake?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/network-data/energy-stake?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/network-data/energy-stake?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "total_energy_weight",
               "energy_rate"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "total_energy_weight": {
                "type": "number",
                "description": "The total amount of TRX staked for Energy."
               },
               "energy_rate": {
                "type": "number",
                "description": "The percentage of TRX staked for Energy."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2019-09-02",
            "total_energy_weight": null,
            "energy_rate": null
           },
           {
            "date": "2019-09-01",
            "total_energy_weight": null,
            "energy_rate": null
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/defi/sunpump-tokens": {
   "get": {
    "tags": [
     "TRX DEFI"
    ],
    "summary": "Sunpump Tokens",
    "description": "This endpoint returns metrics related to SunPump token creation on TRON.\n| Metric | Description |\n|--------|-------------|\n| `token_create_event_count` | The total number of tokens that have been created on the SunPump platform. |\n| `cumulative_count_create_events` | The cumulative number of token creation events on SunPump over time. |",
    "operationId": "getSunpumpTokens",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/defi/sunpump-tokens?window=day&from=20190416&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/defi/sunpump-tokens?window=day&from=20190416&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/defi/sunpump-tokens?window=day&from=20190416&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/defi/sunpump-tokens?window=day&from=20190416&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/defi/sunpump-tokens?window=day&from=20190416&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "token_create_event_count",
               "cumulative_count_create_events"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "token_create_event_count": {
                "type": "number",
                "description": "The number of new token creation events observed on the SunPump platform within the requested window (e.g., per day)."
               },
               "cumulative_count_create_events": {
                "type": "number",
                "description": "The cumulative total number of token creation events recorded on the SunPump platform from inception up to the end of the requested window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "token_create_event_count": 2,
            "cumulative_count_create_events": 104403
           },
           {
            "date": "2026-06-13",
            "token_create_event_count": 2,
            "cumulative_count_create_events": 104401
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/trx/defi/sunswap-activity": {
   "get": {
    "tags": [
     "TRX DEFI"
    ],
    "summary": "Sunswap Activity",
    "description": "This endpoint returns metrics related to Sunswap activity on TRON.\n| Metric | Description |\n|--------|-------------|\n| `total_transaction_count` | The total number of transactions on Sunswap. |\n| `wtrx_transaction_count` | The number of transactions involving WTRX in the given window. |\n| `other_transaction_count` | The number of transactions involving other tokens in the given window. |\n| `wtrx_dominance` | The dominance of WTRX in the total transaction volume in the given window. |\n| `wtrx_amount` | The total amount of WTRX traded in the given window. |\n| `wtrx_amount_usd` | The total amount of WTRX traded in USD in the given window. |",
    "operationId": "getSunswapActivity",
    "parameters": [
     {
      "description": "Currently, we only support `day`.",
      "explode": false,
      "in": "query",
      "name": "window",
      "schema": {
       "type": "string",
       "default": "day"
      },
      "style": "form",
      "example": "day"
     },
     {
      "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
      "explode": false,
      "in": "query",
      "name": "from",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T100000"
     },
     {
      "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
      "explode": false,
      "in": "query",
      "name": "to",
      "required": false,
      "schema": {
       "type": "string"
      },
      "style": "form",
      "example": "20191001T103025"
     },
     {
      "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
      "explode": false,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "type": "integer",
       "default": 100,
       "minimum": 1,
       "maximum": 100000
      },
      "style": "form",
      "example": 100
     },
     {
      "description": "A format type about return message type. Supported formats are json, csv.",
      "explode": false,
      "in": "query",
      "name": "format",
      "required": false,
      "schema": {
       "type": "string",
       "default": "json"
      },
      "style": "form",
      "example": "json"
     }
    ],
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/trx/defi/sunswap-activity?window=day&from=20191001&limit=2\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/trx/defi/sunswap-activity?window=day&from=20191001&limit=2\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/trx/defi/sunswap-activity?window=day&from=20191001&limit=2\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/trx/defi/sunswap-activity?window=day&from=20191001&limit=2\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/trx/defi/sunswap-activity?window=day&from=20191001&limit=2\"\nprint(requests.get(url, headers=headers).json())"
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "result"
         ],
         "properties": {
          "status": {
           "type": "object",
           "description": "The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included.",
           "properties": {
            "code": {
             "type": "integer",
             "format": "int32",
             "description": "HTTP status code"
            },
            "message": {
             "type": "string",
             "description": "Text description of the error or success."
            }
           },
           "required": [
            "code",
            "message"
           ]
          },
          "result": {
           "type": "object",
           "required": [
            "window",
            "data"
           ],
           "properties": {
            "window": {
             "type": "string",
             "description": "The size of window. This metric supports only day resolution."
            },
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "required": [
               "total_transaction_count",
               "wtrx_transaction_count",
               "other_transaction_count",
               "wtrx_dominance",
               "wtrx_amount",
               "wtrx_amount_usd"
              ],
              "properties": {
               "date": {
                "type": "string",
                "description": "The date in YYYY-DD-MM. This optional field only appears when window=day is used."
               },
               "total_transaction_count": {
                "type": "number",
                "description": "The total number of transactions on Sunswap."
               },
               "wtrx_transaction_count": {
                "type": "number",
                "description": "The number of transactions involving WTRX in the given window."
               },
               "other_transaction_count": {
                "type": "number",
                "description": "The number of transactions involving other tokens in the given window."
               },
               "wtrx_dominance": {
                "type": "number",
                "description": "The dominance of WTRX in the total transaction volume in the given window."
               },
               "wtrx_amount": {
                "type": "number",
                "description": "The total amount of WTRX traded in the given window."
               },
               "wtrx_amount_usd": {
                "type": "number",
                "description": "The total amount of WTRX traded in USD in the given window."
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "window": "day",
          "data": [
           {
            "date": "2026-06-14",
            "total_transaction_count": 7138,
            "wtrx_transaction_count": 5681,
            "other_transaction_count": 1457,
            "wtrx_dominance": 0.7958812,
            "wtrx_amount": 86108938.22,
            "wtrx_amount_usd": 27574753.18
           },
           {
            "date": "2026-06-13",
            "total_transaction_count": 7231,
            "wtrx_transaction_count": 6017,
            "other_transaction_count": 1214,
            "wtrx_dominance": 0.83211174,
            "wtrx_amount": 103196767.69,
            "wtrx_amount_usd": 32726710.14
           }
          ]
         }
        }
       }
      },
      "description": "Successful response."
     }
    },
    "security": [
     {
      "AccessToken": []
     }
    ]
   }
  },
  "/btc/exchange-flows/reserve/latency": {
   "get": {
    "tags": [
     "Latency"
    ],
    "summary": "Reserve Latency",
    "operationId": "getReserveLatency",
    "description": "Reports how fresh this metric's data is. **Append `/latency` to ANY v1 data endpoint** (e.g. `/btc/network-data/hashrate/latency`) to get the same shape for that metric.\n\n- `block` — seconds from a block until the data point is **collectable**.\n- `process` — seconds from a block until the data point is **fully processed and queryable**.\n- `mutable` — whether already-served values may still be revised.\n\nValues are reported per resolution (`block` / `hour` / `day` / `min`) and averaging window. See the [Data Latency guide](/guides/data-latency) for how to read them.",
    "security": [
     {
      "AccessToken": []
     },
     {
      "QueryParameter": []
     }
    ],
    "responses": {
     "200": {
      "description": "Latency broken down by resolution and averaging window.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "status": {
           "type": "object",
           "properties": {
            "code": {
             "type": "integer"
            },
            "message": {
             "type": "string"
            }
           }
          },
          "result": {
           "type": "object",
           "properties": {
            "data": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "all_parameters": {
                "type": "boolean"
               },
               "block": {
                "type": "array",
                "items": {
                 "type": "object"
                }
               },
               "hour": {
                "type": "array",
                "items": {
                 "type": "object"
                }
               },
               "day": {
                "type": "array",
                "items": {
                 "type": "object"
                }
               }
              }
             }
            }
           }
          }
         }
        },
        "example": {
         "status": {
          "code": 200,
          "message": "success"
         },
         "result": {
          "data": [
           {
            "all_parameters": true,
            "block": [
             {
              "block": {
               "10min": "P0DT0H5M19.666667S",
               "60min": "P0DT0H7M50.25S"
              },
              "process": {
               "10min": "P0DT0H16M23.333333S",
               "60min": "P0DT0H16M15.375S"
              },
              "mutable": true
             }
            ],
            "hour": [
             {
              "block": {
               "24hour": "P0DT0H10M16.708333S",
               "168hour": "P0DT0H12M1.221557S"
              },
              "process": {
               "24hour": "P0DT0H30M18.734043S",
               "168hour": "P0DT0H28M58.78117S"
              },
              "mutable": true
             }
            ],
            "day": [
             {
              "block": {
               "7day": "P0DT0H13M56.714286S",
               "30day": "P0DT0H10M39.766667S"
              },
              "process": {
               "7day": "P0DT0H26M15.219136S",
               "30day": "P0DT0H29M7.796547S"
              },
              "mutable": true
             }
            ]
           }
          ]
         }
        }
       }
      }
     }
    },
    "x-codeSamples": [
     {
      "lang": "Shell",
      "source": "curl -X GET \"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve/latency\" \\\n-H \"Authorization: Bearer <YOUR_API_KEY>\""
     },
     {
      "lang": "JavaScript",
      "source": "fetch(\"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve/latency\", { headers: { \"Authorization\": \"Bearer <YOUR_API_KEY>\"} })\n  .then(response => response.json())\n  .then(data => console.log(data))"
     },
     {
      "lang": "NodeJS",
      "source": "require('axios')\n  .get(\"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve/latency\", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })\n  .then(response => console.log(response))"
     },
     {
      "lang": "Ruby",
      "source": "require 'net/http'\nuri = URI(\"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve/latency\")\nreq = Net::HTTP::Get.new(uri)\nreq[\"Authorization\"] = \"Bearer <YOUR_API_KEY>\"\nres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs res.body"
     },
     {
      "lang": "Python",
      "source": "import requests\nheaders = {'Authorization': 'Bearer <YOUR_API_KEY>'}\nurl = \"https://api.cryptoquant.com/v1/btc/exchange-flows/reserve/latency\"\nprint(requests.get(url, headers=headers).json())"
     }
    ]
   }
  }
 },
 "components": {
  "parameters": {
   "window": {
    "description": "Currently we support `day` and `block`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_dbh": {
    "description": "Currently we support `day`, `hour`, and `block`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_dbh10min": {
    "description": "Currently we support `day`, `hour`, `10min`, and `block`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_mdhb": {
    "description": "Currently we support `day`, `hour`, `min`, and `block`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_mdh_btc_spotperp": {
    "description": "A window from the table that we support. [See here](#operation/getBTCPriceOHLCV)",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_mdh_eth_spotperp": {
    "description": "A window from the table that we support. [See here](#operation/getETHPriceOHLCV)",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_mhd": {
    "description": "Currently we support `day`, `hour`, and `min`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_dh10min": {
    "description": "Currently, we support `day`, `hour`, and `10min`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_dh": {
    "description": "Currently, we support `day` and `hour`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_d": {
    "description": "Currently, we only support `day`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "day"
    },
    "style": "form",
    "example": "day"
   },
   "window_b": {
    "description": "Currently, we only support `block`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "block"
    },
    "style": "form",
    "example": "block"
   },
   "window_m": {
    "description": "Currently, we only support `min`.",
    "explode": false,
    "in": "query",
    "name": "window",
    "schema": {
     "type": "string",
     "default": "min"
    },
    "style": "form",
    "example": "min"
   },
   "isrange": {
    "description": "true or false.",
    "explode": false,
    "in": "query",
    "name": "isrange",
    "required": true,
    "schema": {
     "type": "boolean",
     "default": true
    },
    "style": "form",
    "example": true
   },
   "period": {
    "description": "The specific period of your interest. It can be YYMMDD or YYMMDD-YYMMDD if window=day is used. if window=block is used, specify the block height or the range of block heights. You should check if isrange=true is used when you want to specify the range.",
    "explode": false,
    "in": "query",
    "name": "period",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "190123-190601"
   },
   "from": {
    "description": "This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time.",
    "explode": false,
    "in": "query",
    "name": "from",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "20191001T100000"
   },
   "to": {
    "description": "This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time.",
    "explode": false,
    "in": "query",
    "name": "to",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "20191001T103025"
   },
   "limit": {
    "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 100,000.",
    "explode": false,
    "in": "query",
    "name": "limit",
    "required": false,
    "schema": {
     "type": "integer",
     "default": 100,
     "minimum": 1,
     "maximum": 100000
    },
    "style": "form",
    "example": 100
   },
   "limit_30": {
    "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 30 to 100,000.",
    "explode": false,
    "in": "query",
    "name": "limit",
    "required": false,
    "schema": {
     "type": "integer",
     "default": 100,
     "minimum": 30,
     "maximum": 100000
    },
    "style": "form",
    "example": 100
   },
   "limit_365": {
    "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 365 to 100,000.",
    "explode": false,
    "in": "query",
    "name": "limit",
    "required": false,
    "schema": {
     "type": "integer",
     "default": 100,
     "minimum": 365,
     "maximum": 100000
    },
    "style": "form",
    "example": 100
   },
   "limit_375": {
    "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 375 to 100,000.",
    "explode": false,
    "in": "query",
    "name": "limit",
    "required": false,
    "schema": {
     "type": "integer",
     "default": 100,
     "minimum": 375,
     "maximum": 100000
    },
    "style": "form",
    "example": 100
   },
   "limit_max_1000": {
    "description": "The maximum number of entries to return before the latest data point (or before `to` if specified). This field ranges from 1 to 1000.",
    "explode": false,
    "in": "query",
    "name": "limit",
    "required": false,
    "schema": {
     "type": "integer",
     "default": 100,
     "minimum": 1,
     "maximum": 1000
    },
    "style": "form",
    "example": 100
   },
   "exchange": {
    "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "exchange_xrp": {
    "description": "An exchange from the table that we support. [See here](#tag/XRP-Entity-Flows).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "exchange_eth": {
    "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "exchange_stablecoin": {
    "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/Stablecoin-Exchange-Flows).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "exchange_erc20": {
    "description": "An exchange from the table that we support. Please check the supported exchanges for each token from [here](#tag/ERC20-Exchange-Flows).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "btc_exchange_oi": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/BTCgetOpenInterest).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "bitmex"
   },
   "btc_exchange_ohlcv": {
    "description": "A exchange from the table that we support. [See here](#operation/getBTCPriceOHLCV).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_exchange"
    },
    "style": "form",
    "example": "binance"
   },
   "xrp_exchange_ohlcv": {
    "description": "A exchange from the table that we support. [See here](#operation/getPriceOHLCVXRP).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_exchange"
    },
    "style": "form",
    "example": "binance"
   },
   "eth_exchange_oi": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/ETHgetOpenInterest).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "eth_exchange_ohlcv": {
    "description": "A exchange from the table that we support. [See here](#operation/getETHPriceOHLCV).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_exchange"
    },
    "style": "form",
    "example": "binance"
   },
   "exchange_fr": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/getFundingRates).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "bitmex"
   },
   "exchange_fr_xrp": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/XRPgetFundingRates).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "bitmex"
   },
   "exchange_lss": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/getLongShortStats).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "bitmex"
   },
   "exchange_liq": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/getLiquidations).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "deribit"
   },
   "xrp_exchange_liq": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/XRPgetLiquidations).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "deribit"
   },
   "exchange_liq_eth": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/ETHgetLiquidations).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "deribit"
   },
   "symbol_liq_btc": {
    "description": "A BTC pair symbol from the table that we support. [See here](#operation/getLiquidations)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_symbol"
    },
    "style": "form",
    "example": "btc_usd"
   },
   "symbol_liq_eth": {
    "description": "A ETH pair symbol from the table that we support. [See here](#operation/ETHgetLiquidations)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_symbol"
    },
    "style": "form",
    "example": "eth_usd"
   },
   "symbol_liq_xrp": {
    "description": "A XRP pair symbol from the table that we support. [See here](#operation/XRPgetLiquidations)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_symbol"
    },
    "style": "form",
    "example": "xrp_usd"
   },
   "exchange_sr": {
    "description": "An exchange that supports both BTC and Stablecoins. See here [for BTC](#tag/BTC-Exchange-Flows) and [for Stablecoins](#tag/Stablecoin-Exchange-Flows).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "miner": {
    "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
    "explode": false,
    "in": "query",
    "name": "miner",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "f2pool"
   },
   "miner_eth": {
    "description": "A mining pool from the table that we support. [See here](#tag/ETH-Miner-Flows).",
    "explode": false,
    "in": "query",
    "name": "miner",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "f2pool"
   },
   "miner_company": {
    "description": "A mining company from the table that we support. [See here](#tag/BTC-Miner-Data).",
    "explode": false,
    "in": "query",
    "name": "miner",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "mara"
   },
   "from_entity_ex": {
    "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows).",
    "explode": false,
    "in": "query",
    "name": "from_exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "from_entity_ex_eth": {
    "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows).",
    "explode": false,
    "in": "query",
    "name": "from_exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "binance"
   },
   "from_entity_mp": {
    "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
    "explode": false,
    "in": "query",
    "name": "from_miner",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "f2pool"
   },
   "from_entity_mp_eth": {
    "description": "A mining pool from the table that we support. [See here](#tag/ETH-Miner-Flows).",
    "explode": false,
    "in": "query",
    "name": "from_miner",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "f2pool"
   },
   "from_entity_bank": {
    "description": "A bank from the table that we support. [See here](#tag/BTC-Bank-Flows).",
    "explode": false,
    "in": "query",
    "name": "from_bank",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "blockfi"
   },
   "to_entity_ex": {
    "description": "An exchange from the table that we support. [See here](#tag/BTC-Exchange-Flows). This should not be same as `from_entity`.",
    "explode": false,
    "in": "query",
    "name": "to_exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "bithumb"
   },
   "to_entity_mp": {
    "description": "A mining pool from the table that we support. [See here](#tag/BTC-Miner-Flows).",
    "explode": false,
    "in": "query",
    "name": "to_miner",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "f2pool"
   },
   "to_entity_bank": {
    "description": "A bank from the table that we support. [See here](#tag/BTC-Bank-Flows).",
    "explode": false,
    "in": "query",
    "name": "to_bank",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "blockfi"
   },
   "to_entity_ex_eth": {
    "description": "An exchange from the table that we support. [See here](#tag/ETH-Exchange-Flows). This should not be same as `from_entity`.",
    "explode": false,
    "in": "query",
    "name": "to_exchange",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "bithumb"
   },
   "to_entity_mp_eth": {
    "description": "A mining pool from the table that we support. [See here](#tag/ETH-Miner-Flows).",
    "explode": false,
    "in": "query",
    "name": "to_miner",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "f2pool"
   },
   "token_stablecoin": {
    "description": "A Stablcoin token from the table that we support. [See here](#tag/Supported-Stablecoin-List)",
    "explode": false,
    "in": "query",
    "name": "token",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "usdt_eth"
   },
   "token_erc20": {
    "description": "A ERC20 token from the table that we support. [See here](#tag/Supported-ERC20-List)",
    "explode": false,
    "in": "query",
    "name": "token",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "link"
   },
   "token_alt": {
    "description": "A Alt token from the table that we support. [See here](#tag/Supported-Alt-List)",
    "explode": false,
    "in": "query",
    "name": "token",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "doge"
   },
   "type_ebm": {
    "description": "A type from the entity in exchange, bank, miner.",
    "explode": false,
    "in": "query",
    "name": "type",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "exchange"
   },
   "type_em": {
    "description": "A type from the entity in exchange, miner.",
    "explode": false,
    "in": "query",
    "name": "type",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "exchange"
   },
   "type_e": {
    "description": "A type from the entity in exchange.",
    "explode": false,
    "in": "query",
    "name": "type",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "exchange"
   },
   "symbol_btc": {
    "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/BTC-Fund-Data)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "gbtc"
   },
   "symbol_xrp_oi": {
    "description": "A pair symbol (ticker) from the table that we support. [See here](#tag/XRPgetOpenInterest)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_symbol"
    },
    "style": "form",
    "example": "xrp_usdt"
   },
   "symbol_xrp_fr": {
    "description": "A pair symbol (ticker) from the table that we support. [See here](#tag/XRPgetFundingRates)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_symbol"
    },
    "style": "form",
    "example": "xrp_usdt"
   },
   "symbol_xrp_lss": {
    "description": "A pair symbol (ticker) from the table that we support. [See here](#tag/XRPgetTakerBuySellStats)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "xrp-usdt"
   },
   "symbol_eth": {
    "description": "A stock symbol (ticker) from the table that we support. [See here](#tag/ETH-Fund-Data)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "ethe"
   },
   "symbol_btc_ohlcv": {
    "description": "A BTC pair symbol from the table that we support. [See here](#operation/getBTCPriceOHLCV)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "btc_usd"
   },
   "symbol_eth_ohlcv": {
    "description": "A ETH pair symbol from the table that we support. [See here](#operation/getETHPriceOHLCV)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "eth_usd"
   },
   "symbol_xrp_ohlcv": {
    "description": "A XRP pair symbol from the table that we support. [See here](#operation/getPriceOHLCVXRP)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "xrp_usd"
   },
   "market_btc": {
    "description": "A market type from the table that we support. [See here](#operation/getBTCPriceOHLCV)",
    "explode": false,
    "in": "query",
    "name": "market",
    "required": false,
    "schema": {
     "type": "string",
     "default": "spot"
    },
    "style": "form",
    "example": "spot"
   },
   "market_eth": {
    "description": "A market type from the table that we support. [See here](#operation/getETHPriceOHLCV)",
    "explode": false,
    "in": "query",
    "name": "market",
    "required": false,
    "schema": {
     "type": "string",
     "default": "spot"
    },
    "style": "form",
    "example": "spot"
   },
   "market_xrp": {
    "description": "A market type from the table that we support. [See here](#operation/getPriceOHLCVXRP)",
    "explode": false,
    "in": "query",
    "name": "market",
    "required": false,
    "schema": {
     "type": "string",
     "default": "spot"
    },
    "style": "form",
    "example": "spot"
   },
   "bank": {
    "description": "An bank from the table that we support. [See here](#tag/BTC-Bank-Flows).",
    "explode": false,
    "in": "query",
    "name": "bank",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "blockfi"
   },
   "builder_xrp": {
    "description": "supported builder entities",
    "explode": false,
    "in": "query",
    "name": "builder",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "stably"
   },
   "bank_xrp": {
    "description": "supported bank entities",
    "explode": false,
    "in": "query",
    "name": "bank",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "coinbase"
   },
   "bridge_xrp": {
    "description": "supported bridge entities",
    "explode": false,
    "in": "query",
    "name": "bridge",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "proton_bridge"
   },
   "custody_xrp": {
    "description": "supported custody entities",
    "explode": false,
    "in": "query",
    "name": "custody",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "cobo_custody"
   },
   "foundation_xrp": {
    "description": "xrp foundation entities",
    "explode": false,
    "in": "query",
    "name": "foundation",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "ripple"
   },
   "team_xrp": {
    "description": "team entities",
    "explode": false,
    "in": "query",
    "name": "team",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "ahbritto"
   },
   "entity_type": {
    "description": "xrp ledger entity types from the table that we support. [See here](#tag/XRP-Entity-Flows).",
    "explode": false,
    "in": "query",
    "name": "entity_type",
    "required": false,
    "schema": {
     "type": "string",
     "default": "exchange"
    },
    "style": "form",
    "example": "exchange"
   },
   "entity_name": {
    "description": "xrp ledger entities from the table that we support. [See here](#tag/XRP-Entity-Flows).",
    "explode": false,
    "in": "query",
    "name": "entity_name",
    "required": true,
    "schema": {
     "type": "string",
     "default": "all_exchange"
    },
    "style": "form",
    "example": "binance"
   },
   "format": {
    "description": "A format type about return message type. Supported formats are json, csv.",
    "explode": false,
    "in": "query",
    "name": "format",
    "required": false,
    "schema": {
     "type": "string",
     "default": "json"
    },
    "style": "form",
    "example": "json"
   },
   "metric_type": {
    "description": "A metric type derived from statistics. Supported formats are json, csv.",
    "explode": false,
    "in": "query",
    "name": "metric_type",
    "required": false,
    "schema": {
     "type": "string",
     "default": "tx_count"
    },
    "style": "form",
    "example": "tx_count"
   },
   "xrp_exchange_oi": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/XRPgetOpenInterest).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "bitmex"
   },
   "xrp_exchange_lss": {
    "description": "A derivative exchange from the table that we support. [See here](#operation/XRPgetTakerBuySellStats).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "bitmex"
   },
   "typeXRP": {
    "description": "A type from the entity",
    "explode": false,
    "in": "query",
    "name": "type",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "exchange"
   },
   "otc_xrp": {
    "description": "OTC entities",
    "explode": false,
    "in": "query",
    "name": "otc",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "coinmotionß"
   },
   "amm_xrp": {
    "description": "An AMM pair from the table that we support. [See here](#tag/XRP-AMM-Data).",
    "explode": false,
    "in": "query",
    "name": "amm",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "mag-xrp"
   },
   "custody": {
    "description": "An custody from the table that we support. [See here](#tag/BTC-Custody-Flows).",
    "explode": false,
    "in": "query",
    "name": "custody",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "coinbase_vault"
   },
   "from_entity_custody": {
    "description": "A custody from the table that we support. [See here](#tag/BTC-Custody-Flows).",
    "explode": false,
    "in": "query",
    "name": "from_custody",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "coinbase_vault"
   },
   "to_entity_custody": {
    "description": "A custody from the table that we support. [See here](#tag/BTC-Custody-Flows). This should not be same as `from_entity`.",
    "explode": false,
    "in": "query",
    "name": "to_custody",
    "required": true,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "coinbase_vault"
   },
   "trx_market": {
    "description": "A market type from the table that we support. [See here](#operation/getTRXPriceOHLCV)",
    "explode": false,
    "in": "query",
    "name": "market",
    "required": false,
    "schema": {
     "type": "string",
     "default": "spot"
    },
    "style": "form",
    "example": "spot"
   },
   "trx_exchange_ohlcv": {
    "description": "A exchange from the table that we support. [See here](#operation/getTRXPriceOHLCV).",
    "explode": false,
    "in": "query",
    "name": "exchange",
    "required": false,
    "schema": {
     "type": "string",
     "default": "all_exchange"
    },
    "style": "form",
    "example": "all_exchange"
   },
   "trx_symbol_ohlcv": {
    "description": "A TRX pair symbol from the table that we support. [See here](#operation/getTRXPriceOHLCV)",
    "explode": false,
    "in": "query",
    "name": "symbol",
    "required": false,
    "schema": {
     "type": "string"
    },
    "style": "form",
    "example": "trx_usd"
   }
  },
  "securitySchemes": {
   "AccessToken": {
    "type": "http",
    "scheme": "bearer",
    "bearerFormat": "JWT",
    "description": "For each API request, include this HTTP header:\n`Authorization` with the `Bearer <YOUR_API_KEY>`. Bearer access token is the type of HTTP Authorization.  You have to include access token to the HTTP header and note that leading bearer is required.\nYou must include your access token in HTTP header in every request you make. The token is unique, issued for each client, and regularly changed(once a year). To obtain an access token, please [upgrade your plan](https://cryptoquant.com/pricing) to Professional or Premium plan. You'll be able to see your access token on the [API tab](https://cryptoquant.com/settings/api) of your profile page after the subscription."
   },
   "QueryParameter": {
    "type": "apiKey",
    "name": "api_key",
    "in": "query",
    "description": "For each API reqeust, include `api_key` parameter.\nYou must request with your access token in query parameter in every request you make. The token is unique, issued for each client, and regularly changed(once a year). To obtain an access token, please [upgrade your plan](https://cryptoquant.com/pricing) to Professional or Premium plan. You'll be able to see your access token on the [API tab](https://cryptoquant.com/settings/api) of your profile page after the subscription.\nIf you are using Excel, you can use the `api_key` parameter to request with your access token to return data either in `json` or `csv`."
   }
  },
  "examples": {
   "Order": {
    "value": {
     "quantity": "1,",
     "shipDate": "2018-10-19T16:46:45Z,",
     "status": "placed,",
     "complete": false
    }
   }
  }
 }
}