API to download data

  • With a valid API key and subscription, you can download the raw data via GET requests;

  • Your API key is found at the My Account section.

  • You can purchase a subscription or add more days to a existing one at the Subscribe section.


Data


  • We are constantly adding new data and metrics to our database, and the currently available data is organized into the following columns, indexed by block_height and by datetime:

  • General block data:
    datetime, block_size, bits, heights, difficulty, interval, date, qty_blocks_found_24h, hashrate, revenue, fee, tx_count, output_value, output_count, input_value, input_count, subsidy, coins

  • Price and market:
    price, market_cap, 1_year_ago_price, 1_year_ROI, 1_year_CAGR, 2_year_ago_price, 2_year_ROI, 2_year_CAGR, 4_year_ago_price, 4_year_ROI, 4_year_CAGR, 6_year_ago_price, 6_year_ROI, 6_year_CAGR, 8_year_ago_price, 8_year_ROI, 8_year_CAGR, 10_year_ago_price, 10_year_ROI, 10_year_CAGR, 12_year_ago_price, 12_year_ROI, 12_year_CAGR

  • Quantity of addresses:
    qtd_addr_in_bucket_0.0, qtd_addr_in_bucket_0.001, qtd_addr_in_bucket_0.01, qtd_addr_in_bucket_0.1, qtd_addr_in_bucket_1.0, qtd_addr_in_bucket_10.0, qtd_addr_in_bucket_100.0, qtd_addr_in_bucket_1000.0, qtd_addr_greater_0.0, qtd_addr_greater_0.001, qtd_addr_greater_0.01, qtd_addr_greater_0.1, qtd_addr_greater_1.0, qtd_addr_greater_10.0, qtd_addr_greater_100.0, qtd_addr_greater_1000.0

  • Quantity and balances of UTXOs:
    qtd_utxo_greater_0.0, qtd_utxo_greater_0.001, qtd_utxo_greater_0.01, qtd_utxo_greater_0.1, qtd_utxo_greater_1.0, qtd_utxo_greater_10.0, qtd_utxo_greater_100.0, qtd_utxo_greater_1000.0, qtd_utxo_addr_type_Pay_to_taproot, qtd_utxo_addr_type_Pay_to_witness_pubkey_hash, qtd_utxo_addr_type_Pay_to_witness_script_hash, qtd_utxo_addr_type_Null_data, qtd_utxo_addr_type_Multisig, qtd_utxo_addr_type_Pay_to_script_hash, qtd_utxo_addr_type_Nonstandard, qtd_utxo_addr_type_Pay_to_pubkey_hash, qtd_utxo_addr_type_Pay_to_pubkey, percentage_qtd_utxo_addr_type_Pay_to_taproot, percentage_qtd_utxo_addr_type_Pay_to_witness_pubkey_hash, percentage_qtd_utxo_addr_type_Pay_to_witness_script_hash, percentage_qtd_utxo_addr_type_Multisig, percentage_qtd_utxo_addr_type_Pay_to_script_hash, percentage_qtd_utxo_addr_type_Nonstandard, percentage_qtd_utxo_addr_type_Pay_to_pubkey_hash, percentage_qtd_utxo_addr_type_Pay_to_pubkey, balance_utxo_addr_type_Pay_to_taproot, balance_utxo_addr_type_Pay_to_witness_pubkey_hash, balance_utxo_addr_type_Pay_to_witness_script_hash, balance_utxo_addr_type_Null_data, balance_utxo_addr_type_Multisig, balance_utxo_addr_type_Pay_to_script_hash, balance_utxo_addr_type_Nonstandard, balance_utxo_addr_type_Pay_to_pubkey_hash, balance_utxo_addr_type_Pay_to_pubkey, percentage_balance_utxo_addr_type_Pay_to_taproot, percentage_balance_utxo_addr_type_Pay_to_witness_pubkey_hash, percentage_balance_utxo_addr_type_Pay_to_witness_script_hash, percentage_balance_utxo_addr_type_Multisig, percentage_balance_utxo_addr_type_Pay_to_script_hash, percentage_balance_utxo_addr_type_Nonstandard, percentage_balance_utxo_addr_type_Pay_to_pubkey_hash, percentage_balance_utxo_addr_type_Pay_to_pubkey

  • Balance of the top addresses:
    balance_top_50_addresses, balance_top_100_addresses, balance_top_200_addresses, balance_top_500_addresses, balance_top_1000_addresses, balance_top_2000_addresses, balance_top_5000_addresses

  • New addresses:
    qtd_new_addr_total

  • Block outputs:
    block_output_values_size, block_output_values_max, block_output_values_min, block_output_values_mean, block_output_values_total_sum, block_output_values_q25, block_output_values_q50, block_output_values_q75

  • Block inputs:
    block_input_values_size, block_input_values_max, block_input_values_min, block_input_values_mean, block_input_values_total_sum, block_input_values_q25, block_input_values_q50, block_input_values_q75

  • Transaction output values by block:
    block_txes_output_value_size, block_txes_output_value_max, block_txes_output_value_min, block_txes_output_value_mean, block_txes_output_value_total_sum, block_txes_output_value_q25, block_txes_output_value_q50, block_txes_output_value_q75

  • Transaction input values by block:
    block_txes_input_value_size, block_txes_input_value_max, block_txes_input_value_min, block_txes_input_value_mean, block_txes_input_value_total_sum, block_txes_input_value_q25, block_txes_input_value_q50, block_txes_input_value_q75

  • Transaction fees by block:
    block_txes_fee_size, block_txes_fee_max, block_txes_fee_min, block_txes_fee_mean, block_txes_fee_total_sum, block_txes_fee_q25, block_txes_fee_q50, block_txes_fee_q75

  • Transaction fees per vbyte by block:
    block_txes_fee_per_vbyte_size, block_txes_fee_per_vbyte_max, block_txes_fee_per_vbyte_min, block_txes_fee_per_vbyte_mean, block_txes_fee_per_vbyte_total_sum, block_txes_fee_per_vbyte_q25, block_txes_fee_per_vbyte_q50, block_txes_fee_per_vbyte_q75

  • Transaction sizes in bytes by block:
    block_txes_size_bytes_size, block_txes_size_bytes_max, block_txes_size_bytes_min, block_txes_size_bytes_mean, block_txes_size_bytes_total_sum, block_txes_size_bytes_q25, block_txes_size_bytes_q50, block_txes_size_bytes_q75

  • Gold market:
    gold_stock_in_tonnes, gold_price, gold_stock_in_100_troy_ounces, gold_market_cap

  • Short Term Holder (STH) and Long Term Holder (LTH) supply, realized cap, realized price, market cap and MVRV:
    STH_supply<1m, STH_supply<2m, STH_supply<3m, STH_supply<4m, STH_supply<5m, STH_supply<6m, STH_supply<1y, STH_supply<2y, STH_supply<4y, total_supply, LTH_supply>1m, LTH_supply>2m, LTH_supply>3m, LTH_supply>4m, LTH_supply>5m, LTH_supply>6m, LTH_supply>1y, LTH_supply>2y, LTH_supply>4y, STH_realized_cap<1m, STH_realized_cap<2m, STH_realized_cap<3m, STH_realized_cap<4m, STH_realized_cap<5m, STH_realized_cap<6m, STH_realized_cap<1y, STH_realized_cap<2y, STH_realized_cap<4y, total_realized_cap, LTH_realized_cap>1m, LTH_realized_cap>2m, LTH_realized_cap>3m, LTH_realized_cap>4m, LTH_realized_cap>5m, LTH_realized_cap>6m, LTH_realized_cap>1y, LTH_realized_cap>2y, LTH_realized_cap>4y, STH_realized_price<1m, STH_realized_price<2m, STH_realized_price<3m, STH_realized_price<4m, STH_realized_price<5m, STH_realized_price<6m, STH_realized_price<1y, STH_realized_price<2y, STH_realized_price<4y, total_realized_price, LTH_realized_price>1m, LTH_realized_price>2m, LTH_realized_price>3m, LTH_realized_price>4m, LTH_realized_price>5m, LTH_realized_price>6m, LTH_realized_price>1y, LTH_realized_price>2y, LTH_realized_price>4y, STH_market_cap<1m, STH_market_cap<2m, STH_market_cap<3m, STH_market_cap<4m, STH_market_cap<5m, STH_market_cap<6m, STH_market_cap<1y, STH_market_cap<2y, STH_market_cap<4y, total_market_cap, LTH_market_cap>1m, LTH_market_cap>2m, LTH_market_cap>3m, LTH_market_cap>4m, LTH_market_cap>5m, LTH_market_cap>6m, LTH_market_cap>1y, LTH_market_cap>2y, LTH_market_cap>4y, STH_mvrv<1m, STH_mvrv<2m, STH_mvrv<3m, STH_mvrv<4m, STH_mvrv<5m, STH_mvrv<6m, STH_mvrv<1y, STH_mvrv<2y, STH_mvrv<4y, total_mvrv, LTH_mvrv>1m, LTH_mvrv>2m, LTH_mvrv>3m, LTH_mvrv>4m, LTH_mvrv>5m, LTH_mvrv>6m, LTH_mvrv>1y, LTH_mvrv>2y, LTH_mvrv>4y

  • HODL waves:
    hodl_waves_15d, hodl_waves_1m, hodl_waves_2m, hodl_waves_3m, hodl_waves_4m, hodl_waves_5m, hodl_waves_6m, hodl_waves_1y, hodl_waves_2y, hodl_waves_4y, hodl_waves_>4y, percentage_hodl_waves_15d, percentage_hodl_waves_1m, percentage_hodl_waves_2m, percentage_hodl_waves_3m, percentage_hodl_waves_4m, percentage_hodl_waves_5m, percentage_hodl_waves_6m, percentage_hodl_waves_1y, percentage_hodl_waves_2y, percentage_hodl_waves_4y, percentage_hodl_waves_>4y


Parameters

  • api_key: your API key;

  • start_block: integer starting block height;

  • end_block: integer ending block height.

  • columns: string with the name of the column (can be passed multiple times).

  • format: csv (default) or json.


Examples

  • https://bitcoinisdata.com/api/get_data?api_key=XXXXXXXXXXXXXXXXXXXXXX : download data from the default block height 800,000 onwards;

  • https://bitcoinisdata.com/api/get_data?api_key=XXXXXXXXXXXXXXXXXXXXXX&start_block=600000 : download data from the block height 600,000 onwards;

  • https://bitcoinisdata.com/api/get_data?api_key=XXXXXXXXXXXXXXXXXXXXXX&start_block=600000&end_block=650000 : download data between the block heights 600,000 and 650,000.

  • https://bitcoinisdata.com/api/get_data?api_key=XXXXXXXXXXXXXXXXXXXXXX&start_block=875000&columns=heights : download only the heights column data from the block height 875,000 onwards;

  • https://bitcoinisdata.com/api/get_data?api_key=XXXXXXXXXXXXXXXXXXXXXX&start_block=875000&columns=heights&columns=price&columns=diffitulty : download only the heights, price, difficulty columns data from the block height 875,000 onwards;

  • https://bitcoinisdata.com/api/get_data?api_key=XXXXXXXXXXXXXXXXXXXXXX&start_block=875000&columns=heights&columns=price&columns=difficulty&format=json : download only the heights, price, difficulty columns data from the block height 875,000 onwards, in a JSON format.

Python example code:

  • 
                                import requests
                                import pandas as pd
                                
                                # Define the API endpoint and parameters
                                api_url = "https://bitcoinisdata.com/api/get_data"
                                params = {
                                    "api_key": "XXXXXXXXXXXXXXXXXXXXX",  # Replace with your actual API key
                                    "start_block": 875000,               # Example start block
                                    "end_block": 875010,                 # Example end block
                                    "format": "json",                    # Request JSON format
                                    "columns": ["heights", "difficulty", "coins"]  # List of columns
                                }
                                
                                # Make the GET request to the API
                                response = requests.get(api_url, params=params)
                                
                                # Check if the request was successful
                                if response.status_code == 200:
                                    # Parse the JSON response
                                    json_data = response.json()
                                    print("JSON Response:")
                                    print(json_data)
                                
                                # Build a pandas dataframe:
                                df = pd.DataFrame(json_data)
                                print(df)