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