Cryptowriter Data API (1.3.0)
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/
.
We improve our data by providing new indicators, releasing new API features, and fixing bugs. Check our latest Changelog from here.
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
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"
}
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. |
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" |
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);
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). |
Entity List
This endpoint returns entity list to serve data.
Authorizations:
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
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/status/entity-list?type=exchange"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "type": "exchange",
- "data": [
- {
- "name": "example",
- "symbol": "example",
- "is_validated": 1,
- "is_spot": 1,
- "is_derivative": 1
}
]
}
}
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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "netflow_total": null
}, - {
- "date": "2019-10-01",
- "netflow_total": null
}
]
}
}
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:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "netflow_total": null
}, - {
- "date": "2019-10-01",
- "netflow_total": null
}
]
}
}
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:
query Parameters
from_exchange required |
|
to_exchange required |
string Example: to_exchange=bithumb An exchange from the table that we support. See here. This should not be same as |
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
from_miner required |
|
to_exchange required |
string Example: to_exchange=bithumb An exchange from the table that we support. See here. This should not be same as |
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
query Parameters
from_exchange required |
|
to_miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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
}
]
}
}
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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/fees?window=day&limit=2"
Response samples
- 200
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/blockreward?window=day&limit=2"
Response samples
- 200
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/difficulty?window=day&limit=2"
Response samples
- 200
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/hashrate?window=day&limit=2"
Response samples
- 200
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/supply?window=day&limit=2"
Response samples
- 200
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/velocity?window=day&limit=2"
Response samples
- 200
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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
}
]
}
}
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:
query Parameters
window |
string Default: "day" Example: window=min Currently we support |
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 |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=min Currently we support |
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 |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=min Currently we support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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
}
]
}
}
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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
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
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "puell_multiple": null
}, - {
- "date": "2019-10-01",
- "puell_multiple": null
}
]
}
}
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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
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
{- "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:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "mvrv": null
}, - {
- "date": "2019-10-01",
- "mvrv": null
}
]
}
}
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:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
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 |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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:
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 |
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 |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
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
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
{- "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
}
]
}
}
Entity List
This endpoint returns entity list to serve data.
Authorizations:
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
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/status/entity-list?type=exchange"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "type": "exchange",
- "data": [
- {
- "name": "example",
- "symbol": "example",
- "is_validated": 1,
- "is_spot": 1,
- "is_derivative": 1
}
]
}
}
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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |
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
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
{- "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:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
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 |