Cryptowriter
  • Home
    • Home
    • Start writing data
    • Read blockchain data
  • How this works
    • How this works
    • Transaction Fees
    • Examples
  • Crypto browser
    • Search Blockchains
    • Browse Bitcoin (BTC)
    • Browse Bitcoin SV (BSV)
    • Browse Gulden (GLD)
    • Browse Etherum (ETH)
    • Request browser
  • API
  • Contact
    • FAQ
    • Contact
    • About
    • Investor relations

Cryptowriter Data API (1.3.0)

API Support: support@cryptowriter.net Terms of Service

The Cryptowriter 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.cryptowriter.net/v1/.

Changelog

We improve our data by providing new indicators, releasing new API features, and fixing bugs. Check our latest Changelog from here.

Introduction

Cryptowriter Data API offers a set of metrics that helps build an understanding of the entire blockchain ecosystem.

https://api.Cryptowriter.com/v1/

├── Bitcoin/
│   ├── Status/                    // status of Bitcoin entity
│   ├── Exchange-Flows/            // on-chain statistics of exchanges
│   ├── Miner-Flows/               // on-chain statistics of miners
│   ├── Inter-Entity-Flows/        // on-chain statistics of flows between entities
│   ├── Network-Data/              // general statistics of Bitcoin network
│   ├── Market-Data/               // price, capitalization
│   ├── Network-Indicator/         // nvt, nvt-golden-cross and other network indicators
│   ├── Market-Indicator/          // stablecoin supply ratio and other market indicators
│   └── Flow-Indicator/            // mpi, whale ratio and other flow indicators
├── Ethereum/
│   ├── Status/                    // status of Ethereum entity
│   ├── Exchange-Flows/            // on-chain statistics of exchanges
│   ├── Miner-Flows/               // on-chain statistics of miners
│   ├── Market-Data/               // price, capitalization, market indicators
│   └── ETH2.0/                    // Ethereum 2.0 statistics
├── Stablecoin/
│   ├── Status/                    // status of stablecoin entity
│   ├── Exchange-Flow/             // on-chain statistics of exchanges
│   ├── Network-Data/              // USDT, PAXOS, USDC, DAI, TUSD, SAI
│   └── Market-Data/               // price, capitalization, market indicators
└── ERC20/
    ├── Status/                    // status of erc20 entity
    ├── Exchange-Flow/             // on-chain statistics of exchanges
    └── Market-Data/               // price

Status Object

Every response includes the status object which indicates if the request was successful. If it is not successful, 'message' specifies the cause of the error.

{
                            "status": {
                            "code": 200,
                            "message": "success"
                            
}

Status and Error Codes

The Cryptowriter API uses standard HTTP status codes to indicate success or failure. 200 represents success, 4xx represents a user error (such as a problem with your key), and 5xx represents a problem with our API.

The following table describes status and error codes returned by API. In the status object, the code field contains the status code and the message field contains the type of response.

Code Type Description
200 success Request was successful.
200 deprecated A resource is deprecated and will be removed in the future.
400 bad_request Some required parameter is missing or has the wrong value.
401 unauthorized Internal authorization failed. It might mean missing or wrong credentials.
403 forbidden It means you don't have an access to the requested endpoint.
404 not_found URI is not valid or the resource ID does not correspond to an existing resource.
405 not_allowed HTTP method not allowed, such as attempting to use a POST request with an endpoint that only accepts GET requests, or vice versa.
429 too_many_requests It indicates the user has sent too many requests in a given amount of time.
500 internal_server_error Unexpected error occurred. Please report this when you see it.

Authentication

Each API request requires authentication to identify the member. Authentication is provided through an access token.

Access Token

For each API request, include this HTTP header: Authorization with the Bearer {access_token}. 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 contact our sales team here.

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

Examples

HTTP Request

GET v1/{PATH} HTTP/1.1
Host: datapack.Cryptowriter.com
Authorization: Bearer {access_token}

Python

''' for http.client '''
import http
conn = http.client.HTTPConnection(BASE_URL)
headers = { 'Authorization': 'Bearer ' + access_token }
conn.request("GET", "path,to,endpoint", headers=headers)
response = conn.getresponse()

''' for requests '''
import requests
headers = { 'Authorization': 'Bearer ' + access_token }
response = requests.get(URL, headers=headers)

Javascript

// for jquery AJAX
var settings = {
                            "url": URL,
                            "method": "GET",
                            "headers": {
                            "Authorization": "Bearer " + access_token
                            }
}

$.ajax(settings).done(function (response) {
  console.log(response)
})

// for XHR
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
                            if (this.readyState === 4) {
    console.log(this.responseText);
                            }
});

xhr.open("GET", URL);
xhr.setRequestHeader("Authorization", "Bearer " + access_token);
xhr.send(null);

Time Convention

For all metrics, window parameter is used to specify the time intervals for which the data is aggregated. Windows are provided in window=min, window=day and window=block, and each metric supports different windows. For on-chain data, the smallest period available is block. Daily units are provided for added versatility. We use two parameters from and to to specify the start and end time for which data will be gathered. Generally, it can be formatted as YYYYMMDDTHHMMSS (e.g. from = 20191003T220000) for all windows, and additional formats are supported for each window type.

Please note that end-of-day data of exchange/miner/inter-entity flow will be ready to serve from UTC 00:00 AM that may take up to an hour. Since block confirmation takes time due to the nature of the blockchain, blocks created before 00:00 AM are reflected in the calculation sequentially. The block confirmation time varies from time to time, so the safe time to query the endpoint for a full day would be an hour after the day. (i.e., UTC 1:00AM) Note that Top 10 data will return null until the block confirmation is complete.

Window Description from, to parameter format
block Data representing a specific block. Datetime(YYYYMMDDTHHMMSS) or block height(e.g. 550000). If datetime is used, data for blocks corresponding to that time period will be returned.
min Currently, window=min is supported for market data only. For time 18:12:00, it represents data from 18:12:00 UTC to 18:12:59 UTC. Datetime(YYMMDDTHHMMSS).
hour Data calculated for all blocks produced in an hour. An hourly data is from 12:00:00 UTC to 12:59:00 UTC. Datetime(YYYYMMDDTHHMMSS).
day Data calculated for all blocks produced in a day. Each day begins at 00:00:00 UTC and end at 23:59:59 UTC. Datetime(YYYYMMDDTHHMMSS) or date(YYYYMMDD).

BTC Status

Status of Bitcoin API, especially Entity list of Bitcoin

Entity List

This endpoint returns entity list to serve data.

Authorizations:
Access Token
query Parameters
type
required
string
Example: type=exchange

A type from the entity in exchange, miner.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/status/entity-list

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/status/entity-list?type=exchange"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "type": "exchange",
    • "data":
      [
      • {
        • "name": "example",
        • "symbol": "example",
        • "is_validated": 1,
        • "is_spot": 1,
        • "is_derivative": 1
        }
      ]
    }
}

BTC Exchange Flows

This endpoint returns the flows of BTC into exchange wallets for as far back as we track. Status 'In Progress' means that we are working on collecting and validating addresses, so data related to those exchanges may not be precise. As you may already know, new exchange wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm. If you’re looking for fixed data, you can use the stable branch and if you want to check out new data every week, you can use the dynamic branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.

Supported exchanges

Name Symbol Status
All Exchanges all_exchange Validated
Spot Exchanges spot_exchange Validated
Derivative Exchanges derivative_exchange Validated
Binance binance Validated
Bitfinex bitfinex Validated
Bitflyer bitflyer Validated
Bitforex bitforex In Progress
Bithumb bithumb Validated
BitMEX bitmex Validated
Bitstamp bitstamp Validated
Bittrex bittrex Validated
BW bw In Progress
Bybit bybit Validated
Coinbase Pro coinbase_pro Validated
Coinone coinone Validated
Dcoin dcoin In Progress
Deribit deribit In Progress
FTX ftx Validated
Gate.io gate_io Validated
Gemini gemini Validated
Gopax gopax Validated
Hitbtc hitbtc In Progress
Huobi Global huobi_global Validated
Itbit itbit In Progress
Korbit korbit Validated
Kraken kraken Validated
Kucoin kucoin Validated
Mt. Gox mt_gox Validated
OKEx okex Validated
Poloniex poloniex Validated
Upbit upbit In Progress
Zb.com zb_com In Progress

Reserve

This endpoint returns the full historical on-chain balance of Bitcoin exchanges.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/exchange-flows/reserve

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "reserve": null,
        • "reserve_usd": null
        },
      • {
        • "date": "2019-10-01",
        • "reserve": null,
        • "reserve_usd": null
        }
      ]
    }
}

Transactions Count

This endpoint returns the number of transactions flowing in/out of Bitcoin exchanges.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/exchange-flows/transactions-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/transactions-count/reserve?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "transactions_count_inflow": null,
        • "transactions_count_outflow": null
        },
      • {
        • "date": "2019-10-01",
        • "transactions_count_inflow": null,
        • "transactions_count_outflow": null
        }
      ]
    }
}

Inflow

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.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/exchange-flows/inflow

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "inflow_total": null,
        • "inflow_top10": null,
        • "inflow_mean": null,
        • "inflow_mean_ma7": null
        },
      • {
        • "date": "2019-10-01",
        • "inflow_total": null,
        • "inflow_top10": null,
        • "inflow_mean": null,
        • "inflow_mean_ma7": null
        }
      ]
    }
}

Outflow

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.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/exchange-flows/outflow

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "outflow_total": null,
        • "outflow_top10": null,
        • "outflow_mean": null,
        • "outflow_mean_ma7": null
        },
      • {
        • "date": "2019-10-01",
        • "outflow_total": null,
        • "outflow_top10": null,
        • "outflow_mean": null,
        • "outflow_mean_ma7": null
        }
      ]
    }
}

Addresses Count

This endpoint returns the number of addresses involved in inflow/outflow transactions.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/exchange-flows/addresses-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "addresses_count_inflow": null,
        • "addresses_count_outflow": null
        },
      • {
        • "date": "2019-10-01",
        • "addresses_count_inflow": null,
        • "addresses_count_outflow": null
        }
      ]
    }
}

Netflow

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.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/exchange-flows/netflow

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "netflow_total": null
        },
      • {
        • "date": "2019-10-01",
        • "netflow_total": null
        }
      ]
    }
}

BTC Miner Flows

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. As you may already know, new miner wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm. If you’re looking for fixed data, you can use the stable branch and if you want to check out new data every week, you can use the dynamic branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.

Supported Miners

Name Symbol Status
All Miners all_miner Validated
Antpool antpool Validated
Bitclub Network bitclub_network Validated
Bitcoin.com bitcoin_com Validated
Bitfury bitfury Validated
BTCC btcc Validated
BTC.com btc_com Validated
BTC.TOP btc_top Validated
BW.com bw_com Validated
BytePool bytepool Validated
DPool dpool Validated
F2Pool f2pool Validated
Huobi huobi In Progress
Okpool.top okpool_top In Progress
Poolin poolin Validated
Slush slush Validated
ViaBTC viabtc Validated
Small Miner small_miner Validated
Unknown Mining Pool 1 unknown_m1 Validated
Unknown Mining Pool 2 unknown_m2 Validated
Unknown Mining Pool 3 unknown_m3 Validated
Unknown Mining Pool 4 unknown_m4 Validated

Reserve

This endpoint returns the full historical on-chain balance of Bitcoin mining pools.

Authorizations:
Access Token
query Parameters
miner
required
string
Example: miner=f2pool

A mining pool from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/miner-flows/reserve

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/reserve?miner=f2pool&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "reserve": null,
        • "reserve_usd": null
        },
      • {
        • "date": "2019-10-01",
        • "reserve": null,
        • "reserve_usd": null
        }
      ]
    }
}

Transactions Count

This endpoint returns the number of transactions flowing in/out of Bitcoin miners.

Authorizations:
Access Token
query Parameters
miner
required
string
Example: miner=f2pool

A mining pool from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/miner-flows/transactions-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/transactions-count?miner=f2pool&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "transactions_count_inflow": null,
        • "transactions_count_outflow": null
        },
      • {
        • "date": "2019-10-01",
        • "transactions_count_inflow": null,
        • "transactions_count_outflow": null
        }
      ]
    }
}

Inflow

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.

Authorizations:
Access Token
query Parameters
miner
required
string
Example: miner=f2pool

A mining pool from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/miner-flows/inflow

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/inflow?miner=f2pool&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "inflow_total": null,
        • "inflow_top10": null,
        • "inflow_mean": null,
        • "inflow_mean_ma7": null
        },
      • {
        • "date": "2019-10-01",
        • "inflow_total": null,
        • "inflow_top10": null,
        • "inflow_mean": null,
        • "inflow_mean_ma7": null
        }
      ]
    }
}

Outflow

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.

Authorizations:
Access Token
query Parameters
miner
required
string
Example: miner=f2pool

A mining pool from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/miner-flows/outflow

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/outflow?miner=f2pool&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "outflow_total": null,
        • "outflow_top10": null,
        • "outflow_mean": null,
        • "outflow_mean_ma7": null
        },
      • {
        • "date": "2019-10-01",
        • "outflow_total": null,
        • "outflow_top10": null,
        • "outflow_mean": null,
        • "outflow_mean_ma7": null
        }
      ]
    }
}

Addresses Count

This endpoint returns the number of addresses involved in inflow/outflow transactions.

Authorizations:
Access Token
query Parameters
miner
required
string
Example: miner=f2pool

A mining pool from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/miner-flows/addresses-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/addresses-count?miner=f2pool&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "addresses_count_inflow": null,
        • "addresses_count_outflow": null
        },
      • {
        • "date": "2019-10-01",
        • "addresses_count_inflow": null,
        • "addresses_count_outflow": null
        }
      ]
    }
}

Netflow

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.

Authorizations:
Access Token
query Parameters
miner
required
string
Example: miner=f2pool

A mining pool from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/miner-flows/netflow

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/netflow?miner=f2pool&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "netflow_total": null
        },
      • {
        • "date": "2019-10-01",
        • "netflow_total": null
        }
      ]
    }
}

BTC Inter Entity Flows

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. As you may already know, new exchange and miner wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm. If you’re looking for fixed data, you can use the stable branch and if you want to check out new data every week, you can use the dynamic branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.

Exchange to Exchange

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.

Authorizations:
Access Token
query Parameters
from_exchange
required
string
Example: from_exchange=binance

An exchange from the table that we support. See here.

to_exchange
required
string
Example: to_exchange=bithumb

An exchange from the table that we support. See here. This should not be same as from_entity.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/inter-entity-flows/exchange-to-exchange

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/inter-entity-flows/exchange-to-exchange?from_exchange=binance&to_exchange=bithumb&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "flow_total": null,
        • "flow_mean": null,
        • "transactions_count_flow": null
        },
      • {
        • "date": "2019-10-01",
        • "flow_total": null,
        • "flow_mean": null,
        • "transactions_count_flow": null
        }
      ]
    }
}

Miner to Exchange

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.

Authorizations:
Access Token
query Parameters
from_miner
required
string
Example: from_miner=f2pool

A mining pool from the table that we support. See here.

to_exchange
required
string
Example: to_exchange=bithumb

An exchange from the table that we support. See here. This should not be same as from_entity.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/inter-entity-flows/miner-to-exchange

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/inter-entity-flows/miner-to-exchange?from_miner=f2pool&to_exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "flow_total": null,
        • "flow_mean": null,
        • "transactions_count_flow": null
        },
      • {
        • "date": "2019-10-01",
        • "flow_total": null,
        • "flow_mean": null,
        • "transactions_count_flow": null
        }
      ]
    }
}

Exchange to Miner

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.

Authorizations:
Access Token
query Parameters
from_exchange
required
string
Example: from_exchange=binance

An exchange from the table that we support. See here.

to_miner
required
string
Example: to_miner=f2pool

A mining pool from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/inter-entity-flows/exchange-to-miner

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/inter-entity-flows/exchange-to-miner?from_exchange=binance&to_miner=f2pool&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "flow_total": null,
        • "flow_mean": null,
        • "transactions_count_flow": null
        },
      • {
        • "date": "2019-10-01",
        • "flow_total": null,
        • "flow_mean": null,
        • "transactions_count_flow": null
        }
      ]
    }
}

BTC Network Data

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

Block Bytes

The mean size(in bytes) of all blocks generated.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/block-bytes

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/block-bytes?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "block_bytes": 1003264
        },
      • {
        • "date": "2019-09-01",
        • "block_bytes": 897233
        }
      ]
    }
}

Block Count

The number of blocks generated in a given window.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/block-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/block-count?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "block_count": 152
        },
      • {
        • "date": "2019-09-01",
        • "block_count": 134
        }
      ]
    }
}

Block Interval

The average time between blocks generated displayed in seconds.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/block-interval

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/block-interval?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "block_interval": 712
        },
      • {
        • "date": "2019-09-01",
        • "block_interval": 592
        }
      ]
    }
}

UTXO Count

The number of total number of unspent transaction outputs existing at the specified point.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/utxo-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/utxo-count?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "block",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "utxo_count": 2931
        },
      • {
        • "date": "2019-09-01",
        • "utxo_count": 3142
        }
      ]
    }
}

Fees

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.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/fees

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/fees?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "fees_block_mean": 0.00013123,
        • "fees_block_mean_usd": 0.11,
        • "fees_total": 11.21331723,
        • "fees_total_usd": 3010.23,
        • "fees_reward_percent": 0.012
        },
      • {
        • "date": "2019-09-01",
        • "fees_block_mean": 0.00013123,
        • "fees_block_mean_usd": 0.11,
        • "fees_total": 11.21331723,
        • "fees_total_usd": 3010.23,
        • "fees_reward_percent": 0.012
        }
      ]
    }
}

Fees Transaction

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.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/fees-transaction

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/fees-transaction?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "fees_transaction_mean": 0.00001321,
        • "fees_transaction_mean_usd": 0.000312,
        • "fees_transaction_median": 0.00001221,
        • "fees_transaction_median_usd": 0.000289
        },
      • {
        • "date": "2019-09-01",
        • "fees_transaction_mean": 0.00001321,
        • "fees_transaction_mean_usd": 0.000312,
        • "fees_transaction_median": 0.00001221,
        • "fees_transaction_median_usd": 0.000289
        }
      ]
    }
}

Blockreward

The sum of block rewards. We also provide this value in usd.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/blockreward

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/blockreward?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "block",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "blockreward": 23.61,
        • "blockreward_usd": 210351.12
        },
      • {
        • "date": "2019-09-01",
        • "blockreward": 29.32,
        • "blockreward_usd": 278263.04
        }
      ]
    }
}

Difficulty

The mean difficulty of mining a new block.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/difficulty

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/difficulty?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "difficulty": 11425323412355.53
        },
      • {
        • "date": "2019-09-01",
        • "difficulty": 17234123523452.25
        }
      ]
    }
}

Hashrate

The mean speed at which miners in the network are solving hash problems. It is displayed as hashes (Bytes) per second.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/hashrate

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/hashrate?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "block",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "hashrate": 8561054
        },
      • {
        • "date": "2019-09-01",
        • "hashrate": 9242532
        }
      ]
    }
}

Supply

This end point 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.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/supply

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/supply?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "block",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "supply_total": 15924414.7953033,
        • "suppply_new": 12.5
        },
      • {
        • "date": "2019-09-01",
        • "supply_total": 15924414.7953033,
        • "suppply_new": 12.5
        }
      ]
    }
}

Transactions Count

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.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/transactions-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/transactions-count?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "transactions_count_total": 78912,
        • "transactions_count_mean": 1248
        },
      • {
        • "date": "2019-09-01",
        • "transactions_count_total": 78912,
        • "transactions_count_mean": 1248
        }
      ]
    }
}

Tokens Transferred

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.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/tokens-transferred

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/tokens-transferred?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "tokens_transferred_total": 78912.12373645,
        • "tokens_transferred_mean": 1248.47276264,
        • "tokens_transferred_median": 1321.53121331
        },
      • {
        • "date": "2019-09-01",
        • "tokens_transferred_total": 78912.12373645,
        • "tokens_transferred_mean": 1248.47276264,
        • "tokens_transferred_median": 1321.53121331
        }
      ]
    }
}

Velocity

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.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/velocity

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/velocity?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "velocity_supply_total": 7.3124
        },
      • {
        • "date": "2019-09-01",
        • "velocity_supply_total": 7.3124
        }
      ]
    }
}

Addresses Count

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.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-data/addresses-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-data/addresses-count?window=day&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-09-02",
        • "addresses_count_active": 102832,
        • "addresses_count_sender": 60123,
        • "addresses_count_receiver": 51231
        },
      • {
        • "date": "2019-09-01",
        • "addresses_count_active": 102832,
        • "addresses_count_sender": 60123,
        • "addresses_count_receiver": 51231
        }
      ]
    }
}

BTC Market Data

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

Price USD

This endpoint returns metrics related to the US Dollar(USD) price of BTC. At this endpoint, metrics are calculated by Minute, Hour, Day, and Block. We provide four 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, and price_usd_low, the lowest USD price in a given window.

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=min

Currently we support min, hour, day or block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/market-data/price-usd

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/market-data/price-usd?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "price_usd_open": null,
        • "price_usd_high": null,
        • "price_usd_low": null,
        • "price_usd_close": null
        },
      • {
        • "date": "2019-10-01",
        • "price_usd_open": null,
        • "price_usd_high": null,
        • "price_usd_low": null,
        • "price_usd_close": null
        }
      ]
    }
}

Open Interest

This endpoint returns BTC Open Interest from derviative exchanges. Supported exchanges for Open Interest are below.

Name Symbol Unit Historical Starting Point
All Exchanges all_exchange USDT The earliest time in the exchanges below.
Binance binance USDT 2020-03-13 02:13:00
Bybit bybit USDT 2019-11-06 23:59:00
Bitmex bitmex USDT Day: 2018-11-01 / Other: 2019-04-01 00:00:00
Deribit deribit USDT 2019-03-30 00:00:00
Huobi Global huobi_global USDT 2020-06-23 09:33:00
Okex okex USDT 2019-09-05 23:59:00
Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=bitmex

A derivative exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=min

Currently we support min, hour or day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/market-data/open-interest

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/market-data/open-interest?window=day&from=20191001&exchange=bitmex"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "open_interest": null
        },
      • {
        • "date": "2019-10-01",
        • "open_interest": null
        }
      ]
    }
}

Funding Rates

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.

Name Symbol Historical Starting Point
All Exchanges all_exchange The earliest time in the exchanges below.
Binance binance 2019-09-10 00:00:00
Bybit bybit 2019-12-01 00:00:00
Bitmex bitmex 2016-05-14 04:00:00
Deribit deribit 2019-03-30 00:00:00
Huobi Global huobi_global 2020-03-25 04:00:00
Okex okex 2019-04-01 00:00:00
Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=bitmex

A derivative exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=min

Currently we support min, hour or day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/market-data/funding-rates

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/market-data/funding-rates?window=day&from=20191001&exchange=bitmex"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "funding_rates": null
        },
      • {
        • "date": "2019-10-01",
        • "funding_rates": null
        }
      ]
    }
}

Capitalization

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/market-data/capitalization

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/market-data/capitalization?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "market_cap": null,
        • "realized_cap": null,
        • "average_cap": null,
        • "delta_cap": null,
        • "thermo_cap": null
        },
      • {
        • "date": "2019-10-01",
        • "market_cap": null,
        • "realized_cap": null,
        • "average_cap": null,
        • "delta_cap": null,
        • "thermo_cap": null
        }
      ]
    }
}

BTC Network Indicator

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.

Stock to Flow

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-indicator/stock-to-flow

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/stock-to-flow?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2020-07-29",
        • "stock_to_flow": null,
        • "stock_to_flow_reversion": null
        },
      • {
        • "date": "2020-07-28",
        • "stock_to_flow": null,
        • "stock_to_flow_reversion": null
        }
      ]
    }
}

NVT

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-indicator/nvt

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/nvt?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "nvt": null
        },
      • {
        • "date": "2019-10-01",
        • "nvt": null
        }
      ]
    }
}

NVT Golden Cross

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-indicator/nvt-golden-cross

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/nvt-golden-cross?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "nvt_golden_cross": null
        },
      • {
        • "date": "2019-10-01",
        • "nvt_golden_cross": null
        }
      ]
    }
}

NVM

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-indicator/nvm

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/nvm?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2020-07-29",
        • "nvm": null
        },
      • {
        • "date": "2020-07-28",
        • "nvm": null
        }
      ]
    }
}

Puell Multiple

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/network-indicator/puell-multiple

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/puell-multiple?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "puell_multiple": null
        },
      • {
        • "date": "2019-10-01",
        • "puell_multiple": null
        }
      ]
    }
}

BTC Market Indicator

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. For more detailed information, please refer to the description of each metric.

Estimated Leverage Ratio

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. Go to Academy‣

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=bitmex

A derivative exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/market-indicator/estimated-leverage-ratio

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "estimated_leverage_ratio": null
        },
      • {
        • "date": "2019-10-01",
        • "estimated_leverage_ratio": null
        }
      ]
    }
}

Stablecoin Supply Ratio

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/market-indicator/stablecoin-supply-ratio

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/market-indicator/stablecoin-supply-ratio?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2020-07-29",
        • "stablecoin_supply_ratio": null
        },
      • {
        • "date": "2020-07-28",
        • "stablecoin_supply_ratio": null
        }
      ]
    }
}

MVRV

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/market-indicator/mvrv

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/market-indicator/mvrv?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "mvrv": null
        },
      • {
        • "date": "2019-10-01",
        • "mvrv": null
        }
      ]
    }
}

BTC Flow Indicator

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.

Miners' Position Index (MPI)

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.
Go to Academy‣

Authorizations:
Access Token
query Parameters
window
string
Default: "day"
Example: window=day

Currently, we only support day.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/flow-indicator/mpi

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/mpi?window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "mpi": null
        },
      • {
        • "date": "2019-10-01",
        • "mpi": null
        }
      ]
    }
}

Exchange Shutdown Index

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.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/flow-indicator/exchange-shutdown-index

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/exchange-shutdown-index?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "is_shutdown": null
        },
      • {
        • "date": "2019-10-01",
        • "is_shutdown": null
        }
      ]
    }
}

Exchange Whale Ratio

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.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/flow-indicator/exchange-whale-ratio

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/exchange-whale-ratio?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "exchange_whale_ratio": null
        },
      • {
        • "date": "2019-10-01",
        • "exchange_whale_ratio": null
        }
      ]
    }
}

Fund Flow Ratio

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.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day and block.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/flow-indicator/fund-flow-ratio

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/fund-flow-ratio?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "fund_flow_ratio": null
        },
      • {
        • "date": "2019-10-01",
        • "fund_flow_ratio": null
        }
      ]
    }
}

Stablecoins Ratio

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

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange that supports both BTC and Stablecoins. See here for BTC and for Stablecoins.

window
string
Default: "day"
Example: window=day

Currently, we support day and hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 1000 ]
Default: 100
Example: limit=100

The maximum number of entries to return before the latest data point (or before to if specified). This field ranges from 1 to 1000.

branch
string
Default: "dynamic"
Example: branch=dynamic

This defines the data which you want, currently we support stable and dynamic. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/btc/flow-indicator/stablecoins-ratio

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/stablecoins-ratio?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "stablecoins_ratio": null,
        • "stablecoins_ratio_usd": null
        },
      • {
        • "date": "2019-10-01",
        • "stablecoins_ratio": null,
        • "stablecoins_ratio_usd": null
        }
      ]
    }
}

ETH Status

Status of Ethereum API, especially Entity list of Ethereum

Entity List

This endpoint returns entity list to serve data.

Authorizations:
Access Token
query Parameters
type
required
string
Example: type=exchange

A type from the entity in exchange, miner.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/eth/status/entity-list

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/eth/status/entity-list?type=exchange"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "type": "exchange",
    • "data":
      [
      • {
        • "name": "example",
        • "symbol": "example",
        • "is_validated": 1,
        • "is_spot": 1,
        • "is_derivative": 1
        }
      ]
    }
}

ETH Exchange Flows

This endpoint returns the flows of ETH into exchange wallets for as far back as we track. Status 'In Progress' means that we are working on collecting and validating addresses, so data related to those exchanges may not be precise. As you may already know, new exchange wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches. stable is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks. dynamic is updated every week with the most recent clustering algorithm. If you’re looking for fixed data, you can use the stable branch and if you want to check out new data every week, you can use the dynamic branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.

Supported exchanges

Name Symbol Status
All Exchanges all_exchange Validated
Spot Exchanges spot_exchange Validated
Derivative Exchanges derivative_exchange Validated
Binance binance Validated
Bithumb bithumb Validated
Coinone coinone Validated
Gopax gopax Validated
Korbit korbit Validated
Upbit upbit Validated
Kucoin kucoin Validated
Kraken kraken Validated
Bitfinex bitfinex Validated
Bittrex bittrex Validated
Poloniex poloniex Validated

Reserve

This endpoint returns the full historical on-chain balance of Ethereum exchanges.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/eth/exchange-flows/reserve

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "reserve": null,
        • "reserve_usd": null
        },
      • {
        • "date": "2019-10-01",
        • "reserve": null,
        • "reserve_usd": null
        }
      ]
    }
}

Transactions Count

This endpoint returns the number of transactions flowing in/out of Ethereum exchanges.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/eth/exchange-flows/transactions-count

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "transactions_count_inflow": null,
        • "transactions_count_outflow": null
        },
      • {
        • "date": "2019-10-01",
        • "transactions_count_inflow": null,
        • "transactions_count_outflow": null
        }
      ]
    }
}

Inflow

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.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.

Responses

Response Schema: application/json
required
object

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.

required
object

Default server

https://api.cryptowriter.net/v1/eth/exchange-flows/inflow

Request samples

  • Shell
  • JavaScript
  • NodeJS
  • Ruby
  • Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2"

Response samples

  • 200
Content type
application/json
{
  • "status":
    {
    • "code": 200,
    • "message": "success"
    },
  • "result":
    {
    • "window": "day",
    • "data":
      [
      • {
        • "date": "2019-10-02",
        • "inflow_total": null,
        • "inflow_top10": null,
        • "inflow_mean": null,
        • "inflow_mean_ma7": null
        },
      • {
        • "date": "2019-10-01",
        • "inflow_total": null,
        • "inflow_top10": null,
        • "inflow_mean": null,
        • "inflow_mean_ma7": null
        }
      ]
    }
}

Outflow

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.

Authorizations:
Access Token
query Parameters
exchange
required
string
Example: exchange=binance

An exchange from the table that we support. See here.

window
string
Default: "day"
Example: window=day

Currently we support day, block or hour.

from
any
Example: from=20191001T100000

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.

to
any
Example: to=20191001T103025

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.

limit
integer [ 1 .. 100000 ]
Default: 100
Example: limit=100

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.