CryptoQuant Latency API

Data freshness. Append `/latency` to any v1 data endpoint to see how long after a block its data becomes collectable and fully processed.

Operations 1

GET /btc/exchange-flows/reserve/latency Reserve Latency #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cryptoquant:cryptoquant-latency-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cryptoquant-latency-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.3.0
  title: CryptoQuant Data Latency 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/`.
servers:
- url: https://api.cryptoquant.com/v1
  description: Default server
tags:
- 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.
paths:
  /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.


        - `block` — seconds from a block until the data point is **collectable**.

        - `process` — seconds from a block until the data point is **fully processed and queryable**.

        - `mutable` — whether already-served values may still be revised.


        Values are reported per resolution (`block` / `hour` / `day` / `min`) and averaging window. See the Data Latency guide 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" \

          -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''

          uri = URI("https://api.cryptoquant.com/v1/btc/exchange-flows/reserve/latency")

          req = Net::HTTP::Get.new(uri)

          req["Authorization"] = "Bearer <YOUR_API_KEY>"

          res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }

          puts res.body'
      - lang: Python
        source: 'import requests

          headers = {''Authorization'': ''Bearer <YOUR_API_KEY>''}

          url = "https://api.cryptoquant.com/v1/btc/exchange-flows/reserve/latency"

          print(requests.get(url, headers=headers).json())'
components:
  securitySchemes:
    AccessToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'For each API request, include this HTTP header:

        `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.

        You 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.

        You 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.

        If 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`.'
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
x-provenance:
  method: harvested
  publisher: CryptoQuant
  source: https://docs.cryptoquant.com/openapi/v1.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)