Bitcoin Magazine Pro API

The latest enhancement to elevate the Bitcoin Magazine Pro experience for Pro users - seamless access to a wealth of insightful data directly from our platform.

Whether you're part of a research team, a trader, or a casual Bitcoin enthusiast interested in exploring the intricate details of Bitcoin performance, our API is tailored to meet your needs.

If you're new to using API services, explore our tutorial on how to quickly begin accessing data from the Bitcoin Magazine Pro API.

Contents

  1. Making an API Request
  2. Available Metrics
  3. Fetching data for a specific metric
  4. Fetching data for a specific time period
  5. Hourly Data

Making an API Request

Our API supports two methods for authorizing requests: using the API key as part of the header and embedding the API key into the URL. While both methods are supported, we strongly recommend utilizing the header method for its enhanced security features.

Header Authorization:

When making requests, you can include your API key as part of the header. This method is preferred due to its security benefits. By transmitting the API key via the header, you ensure that sensitive information is not exposed in the URL, reducing the risk of interception or unauthorized access. Additionally, headers are commonly used for authentication purposes in web applications, making this method more aligned with standard security practices.

To include your API key in the header, add the following header to your requests:

Authorization: Bearer your_api_key

URL Parameter:

Alternatively, you can embed your API key directly into the URL. While this method is supported, it is not recommended due to the inherent security risks associated with transmitting sensitive information in the URL. By including your API key in the URL, you expose it to potential interception, unauthorized access, and other security threats. As a result, we strongly advise against using this method for making requests.

Example URL with embedded API key:

https://api.bitcoinmagazinepro.com/metrics?key=your_api_key

Available Metrics

To retrieve a list of available metrics supported by our API, you can utilize the following endpoint:

https://api.bitcoinmagazinepro.com/metrics

Appending `?hourly=1` to the above endpoint would return only hourly metrics, example:

https://api.bitcoinmagazinepro.com/metrics?hourly=1

The returned response will include the names of each available metric.

Example code:

        import requests

        def fetch_metrics(api_key):
            url = "https://api.bitcoinmagazinepro.com/metrics"
            headers = {'Authorization': f'Bearer {api_key}'}
        
            try:
                response = requests.get(url, headers=headers)
                response.raise_for_status()  # Raise an exception for 4xx or 5xx errors
                data = response.json()
                return data
            except requests.exceptions.RequestException as e:
                print(f"Error fetching data: {e}")
                return None
        
        # Replace 'YOUR_API_KEY' with your actual API key
        api_key = 'YOUR_API_KEY'
        
        metric_data = fetch_metrics(api_key)
        if metric_data:
            print("Metrics data:")
            print(metric_data)
        
Metric List

Below is a complete list of Metrics.

Chart Category Metric Name
Bitcoin Investor Tool: 2-Year MA Multiplier Market Cycle investor-tool
200 Week Moving Average Heatmap Market Cycle 200wma-heatmap
Stock-to-Flow Model Market Cycle stock-to-flow
Fear And Greed Index Market Cycle fear-and-greed
Pi Cycle Top Indicator Market Cycle pi-cycle-top
The Golden Ratio Multiplier Market Cycle golden-ratio
Bitcoin Profitable Days Market Cycle profitable-days
Bitcoin Rainbow Price Chart Indicator Market Cycle rainbow-indicator
Pi Cycle Top & Bottom Indicator Market Cycle pi-cycle-top-bottom
Pi Cycle Top Prediction Market Cycle pi-cycle-top-prediction
Power Law Market Cycle power-law
Price Forecast Tools Onchain Indicators price-forecast-tools
MVRV Z-Score Onchain Indicators mvrv-zscore
RHODL Ratio Onchain Indicators rhodl-ratio
Net Unrealized Profit/Loss (NUPL) Onchain Indicators nupl
Reserve Risk Onchain Indicators reserve-risk
AASI (Active Address Sentiment Indicator) Onchain Indicators active-address-sentiment
Advanced NVT Signal Onchain Indicators advanced-nvt-signal
Realized Price Onchain Indicators realized-price
Value Days Destroyed (VDD) Multiple Onchain Indicators vdd-multiple
CVDD Onchain Indicators cvdd
Top Cap Onchain Indicators top-cap
Delta Top Onchain Indicators delta-top
Balanced Price Onchain Indicators balanced-price
Terminal Price Onchain Indicators terminal-price
Long-Term Holder Realized Price Onchain Indicators lth-realized-price
Short-Term Holder Realized Price Onchain Indicators sth-realized-price
Percent Addresses in Profit Onchain Indicators addresses-in-profit
Percent Addresses in Loss Onchain Indicators addresses-in-loss
Spent Output Profit Ratio (SOPR) Onchain Indicators sopr
Short Term Holder MVRV Onchain Indicators short-term-holder-mvrv
Short Term Holder MVRV Z-Score Onchain Indicators short-term-holder-mvrv-z-score
Long Term Holder MVRV Onchain Indicators long-term-holder-mvrv
Long Term Holder MVRV Z-Score Onchain Indicators long-term-holder-mvrv-z-score
MVRV Z-Score 2YR Rolling Onchain Indicators mvrv-zscore-2yr
Everything Indicator Onchain Indicators everything-indicator
HODL Waves Onchain Movement hodl-waves
1+ Year HODL Wave Onchain Movement hodl-1y
5+ Years HODL Wave Onchain Movement hodl-5y
10+ Years HODL Wave Onchain Movement hodl-10y
Realized Cap HODL Waves Onchain Movement rcap-hodl-waves
Whale Shadows (aka Revived Supply) Onchain Movement whale-watching
Coin Days Destroyed Onchain Movement bdd
Supply Adjusted Coin Days Destroyed Onchain Movement bdd-supply-adjusted
Circulating Supply Onchain Movement circulating-supply
Bitcoin Active Addresses Address Balance Charts active-addresses
Addresses with Balance > 0.01 BTC Address Balance Charts wallets-001
Addresses with Balance > 0.1 BTC Address Balance Charts wallets-01
Addresses with Balance > 1 BTC Address Balance Charts wallets-1
Addresses with Balance > 10 BTC Address Balance Charts wallets-10
Addresses with Balance > 100 BTC Address Balance Charts wallets-100
Addresses with Balance > 1,000 BTC Address Balance Charts wallets-1000
Addresses with Balance > 10,000 BTC Address Balance Charts wallets-10000
Addresses with Balance > $1 Address Balance Charts wallets-1-usd
Addresses with Balance > $10 Address Balance Charts wallets-10-usd
Addresses with Balance > $100 Address Balance Charts wallets-100-usd
Addresses with Balance > $1k Address Balance Charts wallets-1k-usd
Addresses with Balance > $10k Address Balance Charts wallets-10k-usd
Addresses with Balance > $100k Address Balance Charts wallets-100k-usd
Addresses with Balance > $1m Address Balance Charts wallets-1m-usd
Addresses with Non Zero Balance Address Balance Charts non-zero-addresses
Number of New Addresses Address Balance Charts new-addresses
Bitcoin Lightning Capacity Lightning Network lightning-capacity
Bitcoin Lightning Nodes Lightning Network lightning-nodes
The Puell Multiple Mining puell-multiple
Hash Ribbons Indicator Mining hashrate-ribbons
Bitcoin Miner Difficulty Mining miner-difficulty
Miner Revenue (Total) Mining miner-revenue-total
Miner Revenue (Block Rewards) Mining miner-revenue-block-rewards
Miner Revenue (Fees) Mining miner-revenue-fees
Miner Revenue (Fees vs Rewards) Mining miner-revenue-fees-pct
Block Height Mining block-height
Blocks Mined Mining blocks-mined
Hashprice Mining hashprice
Hashprice Volatility Mining hashprice-volatility
Bitcoin Funding Rates Derivatives fr-average
Bitcoin Crosby Ratio Portfolio crosby-ratio
Active Address Growth Trend Portfolio active-address-growth-trend
Bitcoin Volatility Portfolio bitcoin-volatility
Long and Short-Term Holders Portfolio sth-vs-lth-supply
Bitcoin Seasonality Portfolio bitcoin-seasonality
High Yield Credit: Bitcoin Cycles Macro Suite high-yield-credit-vs-btc
Manufacturing PMI: BTC Cycles Macro Suite pmi-vs-btc
US M2 Money vs Bitcoin YoY Macro Suite m2-vs-btc-yoy
US M1 Money vs Bitcoin YoY Macro Suite m1-vs-btc-yoy
US M2 Money vs Bitcoin Macro Suite m2-vs-btc
US M1 Money vs Bitcoin Macro Suite m1-vs-btc
Global M2 vs BTC Macro Suite m2-global-vs-btc
Global M2 vs BTC YoY Macro Suite m2-global-vs-btc-yoy
Fed Balance Sheet vs BTC Macro Suite fed-balance-sheet
Fed Funds Target Range v BTC Macro Suite fed-target-rate
Fed Rate: YoY Change (Abs) Macro Suite fed-target-rate-abs-change
Fed Rate: YoY Change (%) Macro Suite fed-target-rate-pct-change
US Interest Payments vs BTC Macro Suite us-interest-vs-btc
US Debt/GDP Ratio vs BTC Macro Suite btc-vs-us-debt-gdp-ratio
Financial Stress Index vs BTC Macro Suite financial-stress-index-vs-btc
Bull Market Comparison Macro Suite bull-market-comparison

Fetching data for a specific metric

Once you have identified the desired metric from the list of available metrics, you can retrieve its data using the following endpoint:

https://api.bitcoinmagazinepro.com/metrics/{metric_name}

Replace {metric_name} with the name of the desired metric.

This endpoint allows you to fetch historical data for a specific metric. By specifying the desired metric in the endpoint URL, you can retrieve relevant data points over a specified time period.

Example code:

        import io
        import pandas as pd
        import requests

        def fetch_metric_data(api_key, metric_name):
            url = f"https://api.bitcoinmagazinepro.com/metrics/{metric_name}"
            headers = {'Authorization': f'Bearer {api_key}'}
        
            try:
                response = requests.get(url, headers=headers)
                response.raise_for_status()  # Raise an exception for 4xx or 5xx errors
                data = response.json()
                return data
            except requests.exceptions.RequestException as e:
                print(f"Error fetching data: {e}")
                return None
        
        # Replace 'YOUR_API_KEY' with your actual API key
        api_key = 'YOUR_API_KEY'
        metric_name = '200wma-heatmap'
        
        metric_data = fetch_metric_data(api_key, metric_name)
        if metric_data:
            print(f"\nData for metric '{metric_name}':", end="\n\n")
            # Load the data into a pandas DataFrame
            df = pd.read_csv(
                io.StringIO(metric_data),
                index_col=0,
            )
            print(df)
        

Fetching data for a specific time period

Once you have identified the desired metric from the list of available metrics, you can retrieve its data for a specific time period using the following endpoint:

https://api.bitcoinmagazinepro.com/metrics/{metric_name}?from_date={from_date}&to_date={to_date}

Replace {metric_name}, {from_date} and {to_date} with the name of the desired metric and desired from/to date in the format YYYY-MM-DD.

{from_date} and {to_date} are both optional, and it's possible to provide only a from_date or only a to_date if preferred.

Example code:

        import io
        import pandas as pd
        import requests

        def fetch_metric_data(api_key, metric_name, metric_name, from_date, to_date):
            url = f"https://api.bitcoinmagazinepro.com/metrics/{metric_name}?from_date={from_date}&to_date={to_date}"
            headers = {'Authorization': f'Bearer {api_key}'}
        
            try:
                response = requests.get(url, headers=headers)
                response.raise_for_status()  # Raise an exception for 4xx or 5xx errors
                data = response.json()
                return data
            except requests.exceptions.RequestException as e:
                print(f"Error fetching data: {e}")
                return None
        
        # Replace 'YOUR_API_KEY' with your actual API key
        api_key = 'YOUR_API_KEY'
        metric_name = '200wma-heatmap'
        from_date = '2025-01-01'
        to_date = '2025-06-30'
        
        metric_data = fetch_metric_data(api_key, metric_name, metric_name, from_date, to_date)
        if metric_data:
            print(f"\nData for metric '{metric_name}':", end="\n\n")
            # Load the data into a pandas DataFrame
            df = pd.read_csv(
                io.StringIO(metric_data),
                index_col=0,
            )
            print(df)
        

Hourly Data

The following metrics are available with hourly data, simply add &hourly=1 to the end of your request URL.

Metric
fr-average
fr-binance
fr-bitfinex
fr-bitmex
fr-bybit
fr-okx
golden-ratio
200wma-heatmap
investor-tool
pi-cycle-top
profitable-days