NAV
shell python javascript

Introduction

Welcome to the Bitformance API! You can use our API to access cryptocurrency data that powers the Bitformance website, including information on various coins, market trends, and historical data.

We offer language bindings in Shell, JavaScript, and Python! You can view code examples in the dark area to the right, and you can switch the programming language of the examples using the tabs in the top right.

To access the API, you'll need both an API-KEY and an API-SECRET-KEY. Free API keys are available to all users with limited calls per month and restricted access to certain endpoints. For additional access and higher usage limits, please contact the Bitformance Team at contact@bitformance.com.

Authentication

To authorize, use this code:

import requests

url = "https://api.bitformance.com/api/v2/api_endpoint_here"
headers = {
    "API-KEY": "your_api_key_here",
    "API-SECRET-KEY": "your_api_secret_key_here"
}

response = requests.get(url, headers=headers)
print(response.json())
curl "https://api.bitformance.com/api/v2/api_endpoint_here" \
  -H "API-KEY: your_api_key_here" \
  -H "API-SECRET-KEY: your_api_secret_key_here"
const fetch = require('node-fetch');

const url = "https://api.bitformance.com/api/v2/api_endpoint_here";
const headers = {
    "API-KEY": "your_api_key_here",
    "API-SECRET-KEY": "your_api_secret_key_here"
};

fetch(url, { headers })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

Make sure to replace your_api_key_here and your_api_secret_key_here with your API key and your Secret Key.

Bitformance uses API keys to allow access to the API. You can register a new Bitformance API key by creating an account on Our Website and navigating to the API Keys Dashboard once logged in.

User Access

The access to each endpoint is subscription based. Endpoints with the "free" tier designation are available to all users. Some endpoints require a higher tier, or paid subscription. The available tiers are listed below:

Rate Limits

The frequency at which users can call the endpoints are based on the user's tier subscription. Default rate limits are listed below and apply to most endpoints, however some endpoints have custom rate limits. Please read the endpoint's documentation on its rate limits for more information.

Historical Data Access

Different subscription tiers have access to different amounts of historical data:

Endpoints

Get Browsable Indexes

Access Tier: FREE

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free 10 requests per minute
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Without query parameters
url = "https://api.bitformance.com/api/v2/get-browsable-indexes"
headers = {
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_api_secret_key"
}

response = requests.get(url, headers=headers)
indexes = response.json()

# With query parameters
params = {
    "sortField": "marketcap",
    "sortOrder": "desc",
    "indexType": "all"
}

response = requests.get(url, headers=headers, params=params)
indexes = response.json()
# Without query parameters
curl "https://api.bitformance.com/api/v2/get-browsable-indexes" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_api_secret_key"

# With query parameters
curl "https://api.bitformance.com/api/v2/get-browsable-indexes?sortField=marketcap&sortOrder=desc&indexType=all" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_api_secret_key"
const fetch = require('node-fetch');

// Without query parameters
const url = "https://api.bitformance.com/api/v2/get-browsable-indexes";
const headers = {
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_api_secret_key"
};

fetch(url, { headers })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

// With query parameters
const params = new URLSearchParams({
    sortField: 'marketcap',
    sortOrder: 'desc',
    indexType: 'all'
});

fetch(`${url}?${params.toString()}`, { headers })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

The above command returns JSON structured like this:

{
  "success": true,
  "data": [
    {
      "index_info": {
        "_id": "65569daf76cd9d2bc8ec55b5",
        "created": "2023-11-16 22:54:38.948000",
        "updated": "2024-08-24 12:01:06.870000",
        "initial_timestamp": 1483315200,
        "name": "50/50 Bitcoin + Ethereum",
        "description": "50/50 Bitcoin + Ethereum with a monthly rebalance and an initial starting balance of $1,000.",
        "algorithm": "market_cap",
        "sector": "Cryptocurrency",
        "industry": "Digital Currency",
        "asset_type": "cryptocurrency",
        "weighting_method": "custom",
        "rebalancing_interval": "monthly",
        "custom_weights": {
          "BTC": 0.5,
          "ETH": 0.5
        }
      },
      "index_holdings": [
        {
          "ticker": "BTC",
          "id": 1
        },
        {
          "ticker": "ETH",
          "id": 1027
        }
      ],
      "index_performance": {
        "initial_value": 1000.0,
        "value": 15847.23,
        "change_24hour": 234.56,
        "changepct_24hour": 1.5,
        "change_7d": -567.89,
        "changepct_7d": -3.46,
        "change_1m": 1234.56,
        "changepct_1m": 8.44,
        "change_3m": 2345.67,
        "changepct_3m": 17.37,
        "change_6m": 3456.78,
        "changepct_6m": 27.85,
        "change_1y": 4567.89,
        "changepct_1y": 40.47,
        "drawdown": -15.23,
        "marketcap": 128456789.12,
        "asset_performance_24h_bullish": 1,
        "asset_performance_24h_bearish": 1,
        "asset_sma_200d_over": 1,
        "asset_sma_200d_under": 1,
        "asset_sma_50d_over": 1,
        "asset_sma_50d_under": 1,
        "asset_1y_high": 0,
        "asset_1y_low": 0,
        "asset_alltime_high": 0,
        "asset_alltime_low": 0,
        "asset_new_highs": 0,
        "asset_new_lows": 0
      }
    }
  ]
}

This endpoint retrieves all publicly available browsable indexes. You can filter, sort, and organize the results using optional query parameters.

HTTP Request

GET https://api.bitformance.com/api/v2/get-browsable-indexes

Query Parameters

Parameter Type Default Description
sortField string marketcap Field to sort by. Accepted values: marketcap, market_cap, name, created, updated, value, change_24hour, changepct_24hour, change_7d, changepct_7d, change_1m, changepct_1m, change_3m, changepct_3m, change_6m, changepct_6m, change_1y, changepct_1y
sortOrder string desc Sort direction. Accepted values: asc, desc
indexType string bitformance Type of indexes to return. Accepted values: bitformance, sector, aggregated, all

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
index_info Description
_id Unique index identifier.
created Timestamp indicating when the index was created.
updated Timestamp indicating when the index was last updated.
initial_timestamp Timestamp representing the starting point for the index's data and performance tracking.
name The name of the index.
description The description of the index.
algorithm The algorithm used to construct the index (e.g., "market_cap", "equal_weight", "sector_ranked").
sector The sector classification of the index.
industry The industry classification of the index (if applicable).
asset_type The type of assets included in the index (e.g., "cryptocurrency").
weighting_method The method used to assign weights to the assets in the index.
rebalancing_interval The frequency at which the index is rebalanced.
custom_weights Contains custom weighting values if the "weighting_method" is "custom".
index_holdings Description
ticker The ticker symbol of the asset held in the index.
id Unique asset identifier (CMC ID).
index_performance Description
initial_value The initial value of the index on inception, also known as the starting investment.
value Current value of the index.
change_24hour Absolute change in index value over the last 24 hours.
changepct_24hour Percentage change in index value over the last 24 hours.
change_7d Absolute change in index value over the last 7 days.
changepct_7d Percentage change in index value over the last 7 days.
change_1m Absolute change in index value over the last 1 month.
changepct_1m Percentage change in index value over the last 1 month.
change_3m Absolute change in index value over the last 3 months.
changepct_3m Percentage change in index value over the last 3 months.
change_6m Absolute change in index value over the last 6 months.
changepct_6m Percentage change in index value over the last 6 months.
change_1y Absolute change in index value over the last 1 year.
changepct_1y Percentage change in index value over the last 1 year.
drawdown Maximum drawdown percentage of the index.
marketcap Total market capitalization of all assets in the index.
asset_performance_24h_bullish Number of assets in the index with positive 24h performance.
asset_performance_24h_bearish Number of assets in the index with negative 24h performance.
asset_sma_200d_over Number of assets trading above their 200-day simple moving average.
asset_sma_200d_under Number of assets trading below their 200-day simple moving average.
asset_sma_50d_over Number of assets trading above their 50-day simple moving average.
asset_sma_50d_under Number of assets trading below their 50-day simple moving average.
asset_1y_high Number of assets at or near their 1-year high.
asset_1y_low Number of assets at or near their 1-year low.
asset_alltime_high Number of assets at or near their all-time high.
asset_alltime_low Number of assets at or near their all-time low.
asset_new_highs Number of assets that have reached new highs recently.
asset_new_lows Number of assets that have reached new lows recently.

Get All Coins

Access Tier: FREE

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free 10 requests per minute
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Basic request with default pagination
url = "https://api.bitformance.com/api/v2/get-all-coins"
headers = {
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_api_secret_key"
}

response = requests.get(url, headers=headers)
coins = response.json()

# Request with pagination and sorting parameters
params = {
    "page": 2,
    "page_size": 50,
    "sortBy": "price",
    "sortOrder": "asc",
    "tax_only": "true"
}

response = requests.get(url, headers=headers, params=params)
coins = response.json()
# Basic request
curl "https://api.bitformance.com/api/v2/get-all-coins" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_api_secret_key"

# Request with parameters
curl "https://api.bitformance.com/api/v2/get-all-coins?page=2&page_size=50&sortBy=price&sortOrder=asc&tax_only=true" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_api_secret_key"
const fetch = require('node-fetch');

// Basic request
const url = "https://api.bitformance.com/api/v2/get-all-coins";
const headers = {
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_api_secret_key"
};

fetch(url, { headers })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

// Request with parameters
const params = new URLSearchParams({
    page: '2',
    page_size: '50',
    sortBy: 'price',
    sortOrder: 'asc',
    tax_only: 'true'
});

fetch(`${url}?${params.toString()}`, { headers })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

The above command returns JSON structured like this:

{
  "success": true,
  "data": [
    {
      "coin_id": 1,
      "coin_slug": "bitcoin",
      "name": "Bitcoin",
      "symbol": "BTC",
      "description": "",
      "tier_lvl_1": "Digital Currency",
      "tier_lvl_2": "General",
      "last_updated": "2024-08-25T22:12:00.000Z",
      "price": 64510.34179357949,
      "market_cap": 1273762311113.9631,
      "volume": 17528186093.072506,
      "last_daily_close": 64176.36706695918,
      "all_time_high": 73079.3733787985,
      "all_time_low": 0.04951,
      "avg_price_200d": 63241.400978283695,
      "avg_price_50d": 61652.955475512186,
      "change_24hour": 65334.582599120564,
      "changepct_24hour": 1.27768786,
      "change_7day": 69978.65742318358,
      "changepct_7day": 8.4766496,
      "change_1m": -1234.56,
      "changepct_1m": -1.87,
      "change_3m": 2345.67,
      "changepct_3m": 3.64,
      "change_6m": 5678.90,
      "changepct_6m": 8.81,
      "change_1y": 12345.67,
      "changepct_1y": 19.15,
      "one_year_high": 73079.3733787985,
      "one_year_low": 25684.019423324316,
      "weekly_high": 64176.36706695918,
      "weekly_low": 58482.74531725411
    }
  ]
}

This endpoint retrieves a paginated list of cryptocurrency data. Returns 100 coins per page by default, with options for sorting and filtering.

HTTP Request

GET https://api.bitformance.com/api/v2/get-all-coins

Query Parameters

Parameter Type Default Description
page integer 1 Specifies the page number to retrieve (e.g., 1, 2, 3, etc.)
page_size integer 100 Number of coins to return per page. Maximum value is 200
sortBy string market_cap Field to sort by. Accepted values: market_cap, price, name, symbol, volume, change_24hour, changepct_24hour, change_7day, changepct_7day, all_time_high, all_time_low
sortOrder string desc Sort direction. Accepted values: asc, desc
tax_only string - When present (any value), returns only coins with valid taxonomy classification, excluding "Uncategorized" and "BLACKLIST" coins

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
data (array of coin objects) Description
coin_id Unique coin identifier (CMC ID).
coin_slug URL-friendly version of the coin's name.
name The full name of the cryptocurrency.
symbol The ticker symbol of the cryptocurrency.
description Description of the cryptocurrency.
tier_lvl_1 The level 1 taxonomy classification of the cryptocurrency (sector).
tier_lvl_2 The level 2 taxonomy classification of the cryptocurrency (sub-sector).
last_updated The timestamp of the last time the data for this cryptocurrency was updated.
price The current price of the cryptocurrency (in USD).
market_cap The total market capitalization of the cryptocurrency (price × circulating supply).
volume The total trading volume of the cryptocurrency over the last 24 hours.
last_daily_close The closing price of the cryptocurrency at the end of the last trading day.
all_time_high The highest price ever reached by the cryptocurrency.
all_time_low The lowest price ever reached by the cryptocurrency.
avg_price_200d The average price of the cryptocurrency over the last 200 days.
avg_price_50d The average price of the cryptocurrency over the last 50 days.
change_24hour The change in the cryptocurrency's value over the last 24 hours in dollars.
changepct_24hour The percentage change in the cryptocurrency's value over the last 24 hours.
change_7day The change in the cryptocurrency's value over the last 7 days in dollars.
changepct_7day The percentage change in the cryptocurrency's value over the last 7 days.
change_1m The change in the cryptocurrency's value over the last 1 month in dollars.
changepct_1m The percentage change in the cryptocurrency's value over the last 1 month.
change_3m The change in the cryptocurrency's value over the last 3 months in dollars.
changepct_3m The percentage change in the cryptocurrency's value over the last 3 months.
change_6m The change in the cryptocurrency's value over the last 6 months in dollars.
changepct_6m The percentage change in the cryptocurrency's value over the last 6 months.
change_1y The change in the cryptocurrency's value over the last 1 year in dollars.
changepct_1y The percentage change in the cryptocurrency's value over the last 1 year.
one_year_high The highest price reached by the cryptocurrency in the last year.
one_year_low The lowest price reached by the cryptocurrency in the last year.
weekly_high The highest price reached by the cryptocurrency in the last 7 days.
weekly_low The lowest price reached by the cryptocurrency in the last 7 days.

Get Coin Data

Access Tier: FREE

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free 10 requests per minute
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL and query parameters
base_url = "https://api.bitformance.com/api/v2/get-coin-data"
params = {
    "symbols": "BTC,ETH",
    "timeseries_interval": "daily",
    "start": "1639612800",
    "metric": "closing_price"
}

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
}, params=params)

coin_data = response.json()
# Define the base URL and query parameters
base_url="https://api.bitformance.com/api/v2/get-coin-data"
symbols="BTC,ETH"
timeseries_interval="daily"
start="1639612800"
metric="closing_price"

# Send the GET request using curl
curl -G "$base_url" \
  --data-urlencode "symbols=$symbols" \
  --data-urlencode "timeseries_interval=$timeseries_interval" \
  --data-urlencode "start=$start" \
  --data-urlencode "metric=$metric" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL and query parameters
const baseUrl = 'https://api.bitformance.com/api/v2/get-coin-data';
const params = new URLSearchParams({
    symbols: 'BTC,ETH',
    timeseries_interval: 'daily',
    start: '1639612800',
    metric: 'closing_price'
});

// Send the GET request
fetch(`${baseUrl}?${params.toString()}`, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": [
    {
      "cmc_id": 1,
      "symbol": "BTC",
      "name": "Bitcoin",
      "marketcap": 1275614678405.117,
      "volume": 17575445269.965878,
      "price": 64604.15587964322,
      "change_24hour": 65292.934075997626,
      "change_7day": 70188.21847699354,
      "changepct_24hour": 1.06615153,
      "changepct_7day": 8.64350369,
      "change_1m": -1234.56,
      "changepct_1m": -1.87,
      "change_3m": 2345.67,
      "changepct_3m": 3.64,
      "change_6m": 5678.90,
      "changepct_6m": 8.81,
      "change_1y": 12345.67,
      "changepct_1y": 19.15,
      "description": "",
      "tier_lvl_1": "Digital Currency",
      "tier_lvl_2": "General",
      "daily_timeseries_data": [
        {
          "date": "2021-12-16 00:00:00",
          "value": 48830.04419072105
        },
        {
          "date": "2021-12-17 00:00:00",
          "value": 47937.389462730425
        },
        {
          "date": "2021-12-18 00:00:00",
          "value": 46336.761330639274
        },
        {
          "date": "2021-12-19 00:00:00",
          "value": 47827.85538517314
        }
      ],
      "initial_value": 48830.04419072105
    },
    {
      "cmc_id": 1027,
      "symbol": "ETH",
      "name": "Ethereum",
      "marketcap": 281239666935.0205,
      "volume": 13784465135.147797,
      "price": 2337.312950154836,
      "change_24hour": 2350.33965816199,
      "change_7day": 2235.9280441047767,
      "changepct_24hour": 0.55733692,
      "changepct_7day": -4.33766929,
      "change_1m": -123.45,
      "changepct_1m": -5.01,
      "change_3m": 234.56,
      "changepct_3m": 10.88,
      "change_6m": 345.67,
      "changepct_6m": 17.35,
      "change_1y": 1234.56,
      "changepct_1y": 111.88,
      "description": "",
      "tier_lvl_1": "Smart Contract Platform",
      "tier_lvl_2": "Layer 1",
      "daily_timeseries_data": [
        {
          "date": "2021-12-16 00:00:00",
          "value": 4018.3886028698
        },
        {
          "date": "2021-12-17 00:00:00",
          "value": 3962.4696385927
        },
        {
          "date": "2021-12-18 00:00:00",
          "value": 3879.4866765735
        },
        {
          "date": "2021-12-19 00:00:00",
          "value": 3960.8600159608
        }
      ],
      "initial_value": 4018.3886028698
    }
  ]
}

This endpoint retrieves detailed information and historical data for specific cryptocurrencies by their symbols.

HTTP Request

GET https://api.bitformance.com/api/v2/get-coin-data

Query Parameters

Parameter Type Required Description
symbols string Yes Comma-separated list of cryptocurrency symbols (e.g., "BTC,ETH,DOGE"). Maximum 10 symbols per request.
timeseries_interval string No Time interval for historical data. Accepted values: daily, fivemin. When daily is used, returns one data point per day at UTC-0. When fivemin is used, returns 24-hour data with data points every 5 minutes.
start integer No UNIX (Epoch) timestamp indicating when the timeseries data should begin. If the timestamp is older than your tier's historical data access limit, the earliest available timestamp will be used. If the timestamp would return more than 3000 data points, an earlier timestamp will be used to stay within limits.
metric string No The metric to return in timeseries data. Accepted values: closing_price, market_cap. Defaults to closing_price.

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
data (array of coin objects) Description
cmc_id Unique coin identifier (CoinMarketCap ID).
symbol The ticker symbol of the cryptocurrency.
name The full name of the cryptocurrency.
marketcap The total market capitalization of the cryptocurrency (price × circulating supply).
volume The total trading volume of the cryptocurrency over the last 24 hours.
price The current price of the cryptocurrency (in USD).
change_24hour The change in the cryptocurrency's value over the last 24 hours in dollars.
change_7day The change in the cryptocurrency's value over the last 7 days in dollars.
changepct_24hour The percentage change in the cryptocurrency's value over the last 24 hours.
changepct_7day The percentage change in the cryptocurrency's value over the last 7 days.
change_1m The change in the cryptocurrency's value over the last 1 month in dollars.
changepct_1m The percentage change in the cryptocurrency's value over the last 1 month.
change_3m The change in the cryptocurrency's value over the last 3 months in dollars.
changepct_3m The percentage change in the cryptocurrency's value over the last 3 months.
change_6m The change in the cryptocurrency's value over the last 6 months in dollars.
changepct_6m The percentage change in the cryptocurrency's value over the last 6 months.
change_1y The change in the cryptocurrency's value over the last 1 year in dollars.
changepct_1y The percentage change in the cryptocurrency's value over the last 1 year.
description Description of the cryptocurrency.
tier_lvl_1 The level 1 taxonomy classification of the cryptocurrency (sector).
tier_lvl_2 The level 2 taxonomy classification of the cryptocurrency (sub-sector).
initial_value The oldest closing price tracked in the database for this cryptocurrency.
daily_timeseries_data / fivemin_timeseries_data (when timeseries_interval is provided) Description
date The date and time in "YYYY-MM-DD HH:MM:SS" format representing the timestamp of the data point.
value The corresponding value (closing price or market cap) of the cryptocurrency at the specified date and time.

Get Bitformance Altcoin Index

Access Tier: STARTER

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free Not Available
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL and query parameters
base_url = "https://api.bitformance.com/api/v2/get-bitformance-altcoin-index"
params = {
    "timeseries_interval": "daily",
    "weighting_method": "market_cap",
    "metric": "closing_price"
}

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
}, params=params)

altcoin_index = response.json()
# Define the base URL and query parameters
base_url="https://api.bitformance.com/api/v2/get-bitformance-altcoin-index"
timeseries_interval="daily"
weighting_method="market_cap"
metric="closing_price"

# Send the GET request using curl
curl -G "$base_url" \
  --data-urlencode "timeseries_interval=$timeseries_interval" \
  --data-urlencode "weighting_method=$weighting_method" \
  --data-urlencode "metric=$metric" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL and query parameters
const baseUrl = 'https://api.bitformance.com/api/v2/get-bitformance-altcoin-index';
const params = new URLSearchParams({
    timeseries_interval: 'daily',
    weighting_method: 'market_cap',
    metric: 'closing_price'
});

// Send the GET request
fetch(`${baseUrl}?${params.toString()}`, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": {
    "index_info": {
      "_id": "6478bf4fc7a3444d2433fd36",
      "created": "2022-06-12 20:09:13.368000",
      "updated": "2024-08-25 22:31:06.880000",
      "initial_timestamp": 1491004800,
      "name": "Bitformance Altcoin",
      "description": "Top 200 Altcoins - weighted by market cap, rebalanced quarterly, and an initial starting balance of $1,000. This index aims to reflect the overall performance/trends of altcoins.",
      "algorithm": "top_ranked",
      "sector": "Multi-Sector",
      "industry": "Altcoins",
      "asset_type": "dynamic",
      "weighting_method": "market_cap",
      "rebalancing_interval": "QUARTERLY",
      "custom_weights": {}
    },
    "index_holdings": [
      { "ticker": "LTC", "id": 2, "quantity": 3.287725841392287 },
      { "ticker": "XRP", "id": 52, "quantity": 2450.9797025951802 },
      { "ticker": "DOGE", "id": 74, "quantity": 6378.512439581647 }
    ],
    "index_performance": {
      "marketcap": 405001505119.2155,
      "initial_value": 1000,
      "value": 17647.9592678145,
      "drawdown": -44.7335,
      "change_24hour": 219.86630934640198,
      "change_7d": 20.00662346527679,
      "changepct_24hour": 1.2615626383813359,
      "changepct_7d": 0.11349374410584241,
      "change_1m": -583.7322879097555,
      "change_3m": -5273.669374681358,
      "change_6m": -8771.200695155574,
      "change_1y": 7813.173206304606,
      "changepct_1m": -3.2017450828718057,
      "changepct_3m": -23.007393832845576,
      "changepct_6m": -33.200149843710264,
      "changepct_1y": 79.44426200466917,
      "asset_new_highs": 105,
      "asset_new_lows": 1,
      "asset_performance_24h_bearish": 71,
      "asset_performance_24h_bullish": 129,
      "asset_sma_200d_over": 10,
      "asset_sma_200d_under": 190,
      "asset_sma_50d_over": 42,
      "asset_sma_50d_under": 158,
      "asset_1y_high": 1,
      "asset_1y_low": 0,
      "asset_alltime_high": 0,
      "asset_alltime_low": 0
    },
    "daily_timeseries_data": [
      {
        "date": "2017-04-01 00:00:00",
        "value": 1000.0
      },
      {
        "date": "2017-04-02 00:00:00",
        "value": 1004.5596183364022
      },
      {
        "date": "2017-04-03 00:00:00",
        "value": 1639.5754208146486
      },
      {
        "date": "2017-04-04 00:00:00",
        "value": 1184.4590760724552
      }
    ],
    "constituent_info": [
      {
        "coin_id": 2,
        "coin_slug": "litecoin",
        "name": "Litecoin",
        "symbol": "LTC",
        "description": "",
        "tier_lvl_1": "Digital Currency",
        "tier_lvl_2": "General",
        "last_updated": "2024-08-25T22:28:00.000Z",
        "price": 65.30661265643441,
        "market_cap": 4891647320.7893,
        "volume": 232839669.20519465,
        "last_daily_close": 66.58131223228845,
        "all_time_high": 386.45077919,
        "all_time_low": 1.1570099592,
        "avg_price_200d": 78.53544956180635,
        "avg_price_50d": 66.90979366661023,
        "change_24hour": 64.33712188532131,
        "changepct_24hour": -1.4845216,
        "change_7day": 64.30490964026299,
        "changepct_7day": -1.53384623,
        "change_1m": -123.45,
        "changepct_1m": -1.85,
        "change_3m": 234.56,
        "changepct_3m": 3.60,
        "change_6m": 345.67,
        "changepct_6m": 5.29,
        "change_1y": 1234.56,
        "changepct_1y": 18.90,
        "one_year_high": 109.2439422366925,
        "one_year_low": 55.98397579556809,
        "weekly_high": 66.58131223228845,
        "weekly_low": 63.83114086015394
      }
    ]
  }
}

This endpoint returns information and performance data for the Bitformance Altcoin Index, which tracks the top altcoins weighted by market capitalization.

HTTP Request

GET https://api.bitformance.com/api/v2/get-bitformance-altcoin-index

Query Parameters

Parameter Type Description
timeseries_interval string Time interval for historical data. Accepted values: daily, fivemin. When daily is used, returns one data point per day at UTC-0. When fivemin is used, returns 24-hour data with data points every 5 minutes.
weighting_method string The weighting method for the index. Accepted values: market_cap, equal_weight. Defaults to market_cap if not specified or invalid.
metric string The metric to return in timeseries data. Accepted values: closing_price, market_cap. Defaults to closing_price.

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
index_info Description
_id Unique index identifier.
created Timestamp indicating when the index was created.
updated Timestamp indicating the last time the index was updated.
initial_timestamp Timestamp representing the starting point for the index's data and performance tracking.
name The name of the index.
description The description of the index.
algorithm The algorithm used to construct the index (typically "top_ranked").
sector The sector classification of the index.
industry The industry classification of the index.
asset_type The type of assets included in the index (typically "dynamic").
weighting_method The method used to assign weights to the assets in the index.
rebalancing_interval The frequency at which the index is rebalanced.
custom_weights Contains custom weighting values (usually empty for algorithmic indexes).
index_holdings Description
ticker The ticker symbol of the asset held in the index.
id Unique asset identifier (CMC ID).
quantity The amount of the asset currently held in the index.
index_performance Description
marketcap The total market capitalization of the index, representing the aggregate value of all assets' market capitalization within the index, weighted by percentage of index.
initial_value The initial value of the index on inception, also known as the starting investment.
value Current value of the index.
drawdown The maximum percentage loss from the index's peak value over a specified period.
change_24hour The change in the index's value over the last 24 hours in dollars.
changepct_24hour The percentage change in the index's value over the last 24 hours.
change_7d The change in the index's value over the last 7 days in dollars.
changepct_7d The percentage change in the index's value over the last 7 days.
change_1m The change in the index's value over the last 1 month in dollars.
changepct_1m The percentage change in the index's value over the last 1 month.
change_3m The change in the index's value over the last 3 months in dollars.
changepct_3m The percentage change in the index's value over the last 3 months.
change_6m The change in the index's value over the last 6 months in dollars.
changepct_6m The percentage change in the index's value over the last 6 months.
change_1y The change in the index's value over the last 1 year in dollars.
changepct_1y The percentage change in the index's value over the last 1 year.
asset_new_highs The number of holdings in the index that have reached new highs.
asset_new_lows The number of holdings in the index that have reached new lows.
asset_performance_24h_bearish The number of holdings in the index that have a bearish performance (negative returns) over the last 24 hours.
asset_performance_24h_bullish The number of holdings in the index that have a bullish performance (positive returns) over the last 24 hours.
asset_sma_200d_over The number of holdings in the index that are currently trading above their 200-day simple moving average (SMA).
asset_sma_200d_under The number of holdings in the index that are currently trading under their 200-day simple moving average (SMA).
asset_sma_50d_over The number of holdings in the index that are currently trading above their 50-day simple moving average (SMA).
asset_sma_50d_under The number of holdings in the index that are currently trading under their 50-day simple moving average (SMA).
asset_1y_high The number of holdings in the index that have reached their highest price in the last year.
asset_1y_low The number of holdings in the index that have reached their lowest price in the last year.
asset_alltime_high The number of holdings in the index that have reached their highest price ever.
asset_alltime_low The number of holdings in the index that have reached their lowest price ever.
daily_timeseries_data / fivemin_timeseries_data (when timeseries_interval is provided) Description
date The date and time in "YYYY-MM-DD HH:MM:SS" format representing the timestamp of the data point.
value The corresponding value (closing price or market cap) of the index at the specified date and time.
constituent_info Description
coin_id Unique coin identifier (CMC ID).
coin_slug URL-friendly version of the coin's name.
name The full name of the cryptocurrency.
symbol The ticker symbol of the cryptocurrency.
description Description of the cryptocurrency.
tier_lvl_1 The level 1 taxonomy classification of the cryptocurrency (sector).
tier_lvl_2 The level 2 taxonomy classification of the cryptocurrency (sub-sector).
last_updated The timestamp of the last time the data for this cryptocurrency was updated.
price The current price of the cryptocurrency (in USD).
market_cap The total market capitalization of the cryptocurrency (price × circulating supply).
volume The total trading volume of the cryptocurrency over the last 24 hours.
last_daily_close The closing price of the cryptocurrency at the end of the last trading day.
all_time_high The highest price ever reached by the cryptocurrency.
all_time_low The lowest price ever reached by the cryptocurrency.
avg_price_200d The average price of the cryptocurrency over the last 200 days.
avg_price_50d The average price of the cryptocurrency over the last 50 days.
change_24hour The change in the cryptocurrency's value over the last 24 hours in dollars.
changepct_24hour The percentage change in the cryptocurrency's value over the last 24 hours.
change_7day The change in the cryptocurrency's value over the last 7 days in dollars.
changepct_7day The percentage change in the cryptocurrency's value over the last 7 days.
change_1m The change in the cryptocurrency's value over the last 1 month in dollars.
changepct_1m The percentage change in the cryptocurrency's value over the last 1 month.
change_3m The change in the cryptocurrency's value over the last 3 months in dollars.
changepct_3m The percentage change in the cryptocurrency's value over the last 3 months.
change_6m The change in the cryptocurrency's value over the last 6 months in dollars.
changepct_6m The percentage change in the cryptocurrency's value over the last 6 months.
change_1y The change in the cryptocurrency's value over the last 1 year in dollars.
changepct_1y The percentage change in the cryptocurrency's value over the last 1 year.
one_year_high The highest price reached by the cryptocurrency in the last year.
one_year_low The lowest price reached by the cryptocurrency in the last year.
weekly_high The highest price reached by the cryptocurrency in the last 7 days.
weekly_low The lowest price reached by the cryptocurrency in the last 7 days.

Get Top 200 Index

Access Tier: STARTER

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free Not Available
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL and query parameters
base_url = "https://api.bitformance.com/api/v2/get-top200-index"
params = {
    "timeseries_interval": "daily",
    "weighting_method": "market_cap",
    "metric": "closing_price"
}

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
}, params=params)

top200_index = response.json()
# Define the base URL and query parameters
base_url="https://api.bitformance.com/api/v2/get-top200-index"
timeseries_interval="daily"
weighting_method="market_cap"
metric="closing_price"

# Send the GET request using curl
curl -G "$base_url" \
  --data-urlencode "timeseries_interval=$timeseries_interval" \
  --data-urlencode "weighting_method=$weighting_method" \
  --data-urlencode "metric=$metric" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL and query parameters
const baseUrl = 'https://api.bitformance.com/api/v2/get-top200-index';
const params = new URLSearchParams({
    timeseries_interval: 'daily',
    weighting_method: 'market_cap',
    metric: 'closing_price'
});

// Send the GET request
fetch(`${baseUrl}?${params.toString()}`, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": {
    "index_info": {
      "_id": "6478bf4fc7a3444d2433fd36",
      "created": "2022-06-12 20:09:13.368000",
      "updated": "2024-08-25 22:31:06.880000",
      "initial_timestamp": 1491004800,
      "name": "Top 200",
      "description": "Top 200 cryptocurrencies - weighted by market cap, rebalanced quarterly, and an initial starting balance of $1,000. This index aims to reflect the overall performance of the top cryptocurrency market.",
      "algorithm": "top_ranked",
      "sector": "Multi-Sector",
      "industry": "Top Assets",
      "asset_type": "dynamic",
      "weighting_method": "market_cap",
      "rebalancing_interval": "QUARTERLY",
      "custom_weights": {}
    },
    "index_holdings": [
      { "ticker": "BTC", "id": 1, "quantity": 15.287725841392287 },
      { "ticker": "ETH", "id": 1027, "quantity": 145.9797025951802 },
      { "ticker": "BNB", "id": 1839, "quantity": 378.512439581647 }
    ],
    "index_performance": {
      "marketcap": 1205001505119.2155,
      "initial_value": 1000,
      "value": 25647.9592678145,
      "drawdown": -38.7335,
      "change_24hour": 419.86630934640198,
      "change_7d": 120.00662346527679,
      "changepct_24hour": 1.6615626383813359,
      "changepct_7d": 0.47349374410584241,
      "change_1m": -1583.7322879097555,
      "change_3m": -3273.669374681358,
      "change_6m": -4771.200695155574,
      "change_1y": 9813.173206304606,
      "changepct_1m": -6.2017450828718057,
      "changepct_3m": -12.007393832845576,
      "changepct_6m": -18.600149843710264,
      "changepct_1y": 62.44426200466917,
      "asset_new_highs": 15,
      "asset_new_lows": 3,
      "asset_performance_24h_bearish": 89,
      "asset_performance_24h_bullish": 111,
      "asset_sma_200d_over": 45,
      "asset_sma_200d_under": 155,
      "asset_sma_50d_over": 87,
      "asset_sma_50d_under": 113,
      "asset_1y_high": 5,
      "asset_1y_low": 2,
      "asset_alltime_high": 1,
      "asset_alltime_low": 0
    },
    "daily_timeseries_data": [
      {
        "date": "2017-04-01 00:00:00",
        "value": 1000.0
      },
      {
        "date": "2017-04-02 00:00:00",
        "value": 1014.5596183364022
      },
      {
        "date": "2017-04-03 00:00:00",
        "value": 1089.5754208146486
      },
      {
        "date": "2017-04-04 00:00:00",
        "value": 1134.4590760724552
      }
    ],
    "constituent_info": [
      {
        "coin_id": 1,
        "coin_slug": "bitcoin",
        "name": "Bitcoin",
        "symbol": "BTC",
        "description": "",
        "tier_lvl_1": "Digital Currency",
        "tier_lvl_2": "General",
        "last_updated": "2024-08-25T22:28:00.000Z",
        "price": 64510.34179357949,
        "market_cap": 1273762311113.9631,
        "volume": 17528186093.072506,
        "last_daily_close": 64176.36706695918,
        "all_time_high": 73079.3733787985,
        "all_time_low": 0.04951,
        "avg_price_200d": 63241.400978283695,
        "avg_price_50d": 61652.955475512186,
        "change_24hour": 65334.582599120564,
        "changepct_24hour": 1.27768786,
        "change_7day": 69978.65742318358,
        "changepct_7day": 8.4766496,
        "change_1m": -1234.56,
        "changepct_1m": -1.87,
        "change_3m": 2345.67,
        "changepct_3m": 3.64,
        "change_6m": 5678.90,
        "changepct_6m": 8.81,
        "change_1y": 12345.67,
        "changepct_1y": 19.15,
        "one_year_high": 73079.3733787985,
        "one_year_low": 25684.019423324316,
        "weekly_high": 64176.36706695918,
        "weekly_low": 58482.74531725411
      }
    ]
  }
}

This endpoint returns information and performance data for the Top 200 Index, which tracks the top 200 cryptocurrencies weighted by market capitalization.

HTTP Request

GET https://api.bitformance.com/api/v2/get-top200-index

Query Parameters

Parameter Type Description
timeseries_interval string Time interval for historical data. Accepted values: daily, fivemin. When daily is used, returns one data point per day at UTC-0. When fivemin is used, returns 24-hour data with data points every 5 minutes.
weighting_method string The weighting method for the index. Accepted values: market_cap, equal_weight. Defaults to market_cap if not specified or invalid.
metric string The metric to return in timeseries data. Accepted values: closing_price, market_cap. Defaults to closing_price.

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

The response structure is identical to the Get Bitformance Altcoin Index endpoint, containing:

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
index_info Description
_id Unique index identifier.
created Timestamp indicating when the index was created.
updated Timestamp indicating the last time the index was updated.
initial_timestamp Timestamp representing the starting point for the index's data and performance tracking.
name The name of the index.
description The description of the index.
algorithm The algorithm used to construct the index (typically "top_ranked").
sector The sector classification of the index.
industry The industry classification of the index.
asset_type The type of assets included in the index (typically "dynamic").
weighting_method The method used to assign weights to the assets in the index.
rebalancing_interval The frequency at which the index is rebalanced.
custom_weights Contains custom weighting values (usually empty for algorithmic indexes).
index_holdings Description
ticker The ticker symbol of the asset held in the index.
id Unique asset identifier (CMC ID).
quantity The amount of the asset currently held in the index.
index_performance Description
marketcap The total market capitalization of the index.
initial_value The initial value of the index on inception.
value Current value of the index.
drawdown The maximum percentage loss from the index's peak value.
change_24hour The change in the index's value over the last 24 hours in dollars.
changepct_24hour The percentage change in the index's value over the last 24 hours.
change_7d The change in the index's value over the last 7 days in dollars.
changepct_7d The percentage change in the index's value over the last 7 days.
change_1m The change in the index's value over the last 1 month in dollars.
changepct_1m The percentage change in the index's value over the last 1 month.
change_3m The change in the index's value over the last 3 months in dollars.
changepct_3m The percentage change in the index's value over the last 3 months.
change_6m The change in the index's value over the last 6 months in dollars.
changepct_6m The percentage change in the index's value over the last 6 months.
change_1y The change in the index's value over the last 1 year in dollars.
changepct_1y The percentage change in the index's value over the last 1 year.
asset_new_highs Number of holdings that have reached new highs.
asset_new_lows Number of holdings that have reached new lows.
asset_performance_24h_bearish Number of holdings with negative 24h performance.
asset_performance_24h_bullish Number of holdings with positive 24h performance.
asset_sma_200d_over Number of holdings trading above their 200-day SMA.
asset_sma_200d_under Number of holdings trading below their 200-day SMA.
asset_sma_50d_over Number of holdings trading above their 50-day SMA.
asset_sma_50d_under Number of holdings trading below their 50-day SMA.
asset_1y_high Number of holdings at their 1-year high.
asset_1y_low Number of holdings at their 1-year low.
asset_alltime_high Number of holdings at their all-time high.
asset_alltime_low Number of holdings at their all-time low.
daily_timeseries_data / fivemin_timeseries_data (when timeseries_interval is provided) Description
date The date and time in "YYYY-MM-DD HH:MM:SS" format.
value The corresponding value (closing price or market cap) of the index.
constituent_info Description

Complete cryptocurrency data for each asset in the index, including price, market cap, volume, performance metrics, and taxonomy classifications. See the Get All Coins endpoint documentation for detailed field descriptions.

Get Top 200 Data

Access Tier: STARTER

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free Not Available
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL and query parameters
base_url = "https://api.bitformance.com/api/v2/get-top200-data"
params = {
    "weighting_method": "marketcap",
    "metric": "closing_price"
}

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
}, params=params)

top200_data = response.json()
# Define the base URL and query parameters
base_url="https://api.bitformance.com/api/v2/get-top200-data"
weighting_method="marketcap"
metric="closing_price"

# Send the GET request using curl
curl -G "$base_url" \
  --data-urlencode "weighting_method=$weighting_method" \
  --data-urlencode "metric=$metric" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL and query parameters
const baseUrl = 'https://api.bitformance.com/api/v2/get-top200-data';
const params = new URLSearchParams({
    weighting_method: 'marketcap',
    metric: 'closing_price'
});

// Send the GET request
fetch(`${baseUrl}?${params.toString()}`, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "message": "success",
  "data": {
    "weighting_method": "marketcap",
    "daily_timeseries_data": [
      {
        "date": "2017-01-02",
        "value": 1000.0
      },
      {
        "date": "2017-01-03",
        "value": 1023.6284059973888
      },
      {
        "date": "2017-01-04",
        "value": 1051.4059303164877
      },
      {
        "date": "2017-01-05",
        "value": 1164.8305365519946
      }
    ],
    "top_200_rebalanced_constituents": [
      {
        "rebalance_date": "2020-01-01",
        "constituents": [
          {
            "symbol": "BTC",
            "cmc_id": 1
          },
          {
            "symbol": "ETH",
            "cmc_id": 1027
          },
          {
            "symbol": "XRP",
            "cmc_id": 52
          },
          {
            "symbol": "LTC",
            "cmc_id": 2
          }
        ]
      },
      {
        "rebalance_date": "2020-04-01",
        "constituents": [
          {
            "symbol": "BTC",
            "cmc_id": 1
          },
          {
            "symbol": "ETH",
            "cmc_id": 1027
          },
          {
            "symbol": "USDT",
            "cmc_id": 825
          },
          {
            "symbol": "BNB",
            "cmc_id": 1839
          }
        ]
      }
    ]
  }
}

This endpoint returns special timeseries and constituent data for a Top 200 index created by the Bitformance Team. This index is currently not available on the website and can only be accessed via the API. The index is created using coins with valid taxonomy data that meet specific volume and market cap thresholds. It is rebalanced quarterly, and users can view the constituents per rebalancing period.

HTTP Request

GET https://api.bitformance.com/api/v2/get-top200-data

Query Parameters

Parameter Type Description
weighting_method string The weighting method for the index. Accepted values: marketcap, equal_weight. Defaults to marketcap if not specified or invalid.
metric string The metric to return in timeseries data. Accepted values: closing_price, market_cap. Defaults to closing_price.

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
message Status message indicating success or any warnings about parameter validation.
data Description
weighting_method The weighting method used for the index data returned.
daily_timeseries_data Description
date The date in "YYYY-MM-DD" format representing the trading day.
value The corresponding value of the index (total_value for closing_price or total_marketcap for market_cap metric) at the specified date.
top_200_rebalanced_constituents Description
rebalance_date The date in "YYYY-MM-DD" format when the rebalancing occurred.
constituents An array of cryptocurrency objects that were included in the index during this rebalancing period.
Individual constituent objects contain: Description
symbol The ticker symbol of the cryptocurrency.
cmc_id The unique CoinMarketCap ID of the cryptocurrency.

Data Source

This endpoint retrieves data from CSV files stored in S3 that contain: - Historical performance data for the Top 200 index with different weighting methods - Quarterly rebalancing constituent data showing which cryptocurrencies were included in each rebalancing period - Data spanning multiple years of index performance and composition changes

Use Cases

Get Sector Indexes

Access Tier: FREE

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free 10 requests per minute
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL and query parameters
base_url = "https://api.bitformance.com/api/v2/get-sector-indexes"
params = {
    "weighting_method": "market_cap",
    "sector": "Smart Contract Platform",
    "industry": "Layer 1"
}

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
}, params=params)

sector_indexes = response.json()
# Define the base URL and query parameters
base_url="https://api.bitformance.com/api/v2/get-sector-indexes"
weighting_method="market_cap"
sector="Smart Contract Platform"
industry="Layer 1"

# Send the GET request using curl
curl -G "$base_url" \
  --data-urlencode "weighting_method=$weighting_method" \
  --data-urlencode "sector=$sector" \
  --data-urlencode "industry=$industry" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL and query parameters
const baseUrl = 'https://api.bitformance.com/api/v2/get-sector-indexes';
const params = new URLSearchParams({
    weighting_method: 'market_cap',
    sector: 'Smart Contract Platform',
    industry: 'Layer 1'
});

// Send the GET request
fetch(`${baseUrl}?${params.toString()}`, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": [
    {
      "index_info": {
        "_id": "664606b78fb1b7408916ea0d",
        "created": "2024-05-16 09:14:31.416000",
        "updated": "2024-08-25 23:21:05.883000",
        "initial_timestamp": 1483315200,
        "name": "Smart Contract Platform - Layer 1",
        "description": "SECTOR: Smart Contract Platform, INDUSTRY: Layer 1",
        "algorithm": "sector_ranked",
        "sector": "Smart Contract Platform",
        "industry": "Layer 1",
        "asset_type": "dynamic",
        "weighting_method": "market_cap",
        "rebalancing_interval": "quarterly",
        "custom_weights": {}
      },
      "index_holdings": [
        { 
          "ticker": "ETH", 
          "id": 1027, 
          "quantity": 53.23441698627238 
        },
        { 
          "ticker": "ETC", 
          "id": 1321, 
          "quantity": 65.43618871475672 
        },
        { 
          "ticker": "NEO", 
          "id": 1376, 
          "quantity": 31.243727330472407 
        }
      ],
      "index_performance": {
        "marketcap": 596204330702.7146,
        "initial_value": 1000,
        "value": 263284.91562438454,
        "drawdown": -38.2951,
        "change_24hour": 1426.1018434149446,
        "change_7d": 20551.16186894165,
        "changepct_24hour": 0.5446071578892128,
        "changepct_7d": 8.466544743359915,
        "change_1m": -34404.563054258586,
        "change_3m": -62158.741309680394,
        "change_6m": 7523.415830343787,
        "change_1y": 133197.01240484312,
        "changepct_1m": -11.557198194229242,
        "changepct_3m": -19.09969359835266,
        "changepct_6m": 2.941574801681345,
        "changepct_1y": 102.3900063790364,
        "asset_new_highs": 12,
        "asset_new_lows": 1,
        "asset_performance_24h_bearish": 37,
        "asset_performance_24h_bullish": 13,
        "asset_sma_200d_over": 7,
        "asset_sma_200d_under": 43,
        "asset_sma_50d_over": 34,
        "asset_sma_50d_under": 16,
        "asset_1y_high": 1,
        "asset_1y_low": 0,
        "asset_alltime_high": 0,
        "asset_alltime_low": 0
      }
    }
  ]
}

This endpoint returns sector-specific cryptocurrency indexes, allowing you to filter by sector, industry, and weighting method.

HTTP Request

GET https://api.bitformance.com/api/v2/get-sector-indexes

Query Parameters

Parameter Type Description
weighting_method string Specifies the method of weighting. Accepted values: market_cap, equal_weight
sector string Specifies the sector to filter by (e.g., "Smart Contract Platform", "Digital Currency", "DeFi")
industry string Specifies the industry within the sector (e.g., "Layer 1", "General", "DEX")

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
index_info Description
_id Unique index identifier.
created Timestamp indicating when the index was created.
updated Timestamp indicating the last time the index was updated.
initial_timestamp Timestamp representing the starting point for the index's data and performance tracking.
name The name of the index.
description The description of the index.
algorithm The algorithm used to construct the index (typically "sector_ranked" for sector indexes).
sector The sector classification of the index.
industry The industry classification within the sector.
asset_type The type of assets included in the index (typically "dynamic" for sector indexes).
weighting_method The method used to assign weights to the assets in the index.
rebalancing_interval The frequency at which the index is rebalanced (typically "quarterly").
custom_weights Contains custom weighting values (usually empty for sector indexes).
index_holdings Description
ticker The ticker symbol of the asset held in the index.
id Unique asset identifier (CMC ID).
quantity The amount of the asset currently held in the index.
index_performance Description
marketcap The total market capitalization of the index, representing the aggregate value of all assets' market capitalization within the index, weighted by percentage of index.
initial_value The initial value of the index on inception, also known as the starting investment.
value Current value of the index.
drawdown The maximum percentage loss from the index's peak value over a specified period.
change_24hour The change in the index's value over the last 24 hours in dollars.
changepct_24hour The percentage change in the index's value over the last 24 hours.
change_7d The change in the index's value over the last 7 days in dollars.
changepct_7d The percentage change in the index's value over the last 7 days.
change_1m The change in the index's value over the last 1 month in dollars.
changepct_1m The percentage change in the index's value over the last 1 month.
change_3m The change in the index's value over the last 3 months in dollars.
changepct_3m The percentage change in the index's value over the last 3 months.
change_6m The change in the index's value over the last 6 months in dollars.
changepct_6m The percentage change in the index's value over the last 6 months.
change_1y The change in the index's value over the last 1 year in dollars.
changepct_1y The percentage change in the index's value over the last 1 year.
asset_new_highs The number of holdings in the index that have reached new highs.
asset_new_lows The number of holdings in the index that have reached new lows.
asset_performance_24h_bearish The number of holdings in the index that have a bearish performance (negative returns) over the last 24 hours.
asset_performance_24h_bullish The number of holdings in the index that have a bullish performance (positive returns) over the last 24 hours.
asset_sma_200d_over The number of holdings in the index that are currently trading above their 200-day simple moving average (SMA).
asset_sma_200d_under The number of holdings in the index that are currently trading under their 200-day simple moving average (SMA).
asset_sma_50d_over The number of holdings in the index that are currently trading above their 50-day simple moving average (SMA).
asset_sma_50d_under The number of holdings in the index that are currently trading under their 50-day simple moving average (SMA).
asset_1y_high The number of holdings in the index that have reached their highest price in the last year.
asset_1y_low The number of holdings in the index that have reached their lowest price in the last year.
asset_alltime_high The number of holdings in the index that have reached their highest price ever.
asset_alltime_low The number of holdings in the index that have reached their lowest price ever.

Get Altcoin Season Index

Access Tier: STARTER

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free Not Available
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL
base_url = "https://api.bitformance.com/api/v2/get-altcoin-season"

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
})

altcoin_season = response.json()
# Define the base URL
base_url="https://api.bitformance.com/api/v2/get-altcoin-season"

# Send the GET request using curl
curl -X GET "$base_url" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL
const baseUrl = 'https://api.bitformance.com/api/v2/get-altcoin-season';

// Send the GET request
fetch(baseUrl, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": {
    "daily_timeseries_data": [
      {
        "date": "2017-04-02 00:00:00",
        "value": 0.3333333333333333
      },
      {
        "date": "2017-04-03 00:00:00",
        "value": 0.3333333333333333
      },
      {
        "date": "2017-04-04 00:00:00",
        "value": 0.3333333333333333
      },
      {
        "date": "2017-04-05 00:00:00",
        "value": 0.4444444444444444
      },
      {
        "date": "2017-04-06 00:00:00",
        "value": 0.5555555555555556
      },
      {
        "date": "2017-04-07 00:00:00",
        "value": 0.6666666666666666
      },
      {
        "date": "2017-04-08 00:00:00",
        "value": 0.7777777777777778
      }
    ]
  }
}

This endpoint returns historical data for the Altcoin Season Index, which measures the relative performance of altcoins compared to Bitcoin over time.

HTTP Request

GET https://api.bitformance.com/api/v2/get-altcoin-season

Query Parameters

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
data Description
daily_timeseries_data Description
date The date and time in "YYYY-MM-DD HH:MM:SS" format representing the timestamp of the index calculation.
value The corresponding value of the Altcoin Season Index at the specified date. Values typically range from 0 to 1, where higher values indicate stronger altcoin performance relative to Bitcoin.

Understanding the Altcoin Season Index

The Altcoin Season Index measures the relative performance of altcoins compared to Bitcoin:

This index helps traders and analysts identify market cycles and periods when altcoins tend to outperform or underperform relative to Bitcoin.

Use Cases

Get Taxonomies

Access Tier: FREE

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free 10 requests per minute
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL
base_url = "https://api.bitformance.com/api/v2/get-taxonomies"

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
})

taxonomies = response.json()
# Define the base URL
base_url="https://api.bitformance.com/api/v2/get-taxonomies"

# Send the GET request using curl
curl -X GET "$base_url" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL
const baseUrl = 'https://api.bitformance.com/api/v2/get-taxonomies';

// Send the GET request
fetch(baseUrl, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": {
    "Smart Contract Platform": {
      "Layer 1": [
        {
          "coin_id": 268,
          "coin_slug": "whitecoin",
          "name": "WhiteCoin",
          "symbol": "XWC",
          "description": "",
          "tier_lvl_1": "Smart Contract Platform",
          "tier_lvl_2": "Layer 1",
          "last_updated": "2024-08-25T23:54:00.000Z",
          "price": 0.006833462117392149,
          "market_cap": 5222983.3594693085,
          "volume": 276653.98947512,
          "last_daily_close": 0.006772623798930958,
          "all_time_high": 2.59460633,
          "all_time_low": 0.00008236819849,
          "avg_price_200d": 0.014513675930935997,
          "avg_price_50d": 0.005160290346883868,
          "change_24hour": 0.006894846944956285,
          "changepct_24hour": 0.89829762,
          "change_7day": 0.007604938428139358,
          "changepct_7day": 11.28968446,
          "change_1m": -123.45,
          "changepct_1m": -5.67,
          "change_3m": 234.56,
          "changepct_3m": 12.34,
          "change_6m": 345.67,
          "changepct_6m": 18.90,
          "change_1y": 456.78,
          "changepct_1y": 25.11,
          "one_year_high": 0.06586916268536099,
          "one_year_low": 0.0032548452443409382,
          "weekly_high": 0.006772623798930958,
          "weekly_low": 0.005791444063172019
        },
        {
          "coin_id": 1027,
          "coin_slug": "ethereum",
          "name": "Ethereum",
          "symbol": "ETH",
          "description": "",
          "tier_lvl_1": "Smart Contract Platform",
          "tier_lvl_2": "Layer 1",
          "last_updated": "2024-08-25T23:58:00.000Z",
          "price": 2748.4704443622136,
          "market_cap": 330636478610.6457,
          "volume": 9381067892.878712,
          "last_daily_close": 2768.615443493595,
          "all_time_high": 4812.0876135348,
          "all_time_low": 0.4348289967,
          "avg_price_200d": 3252.1611123627804,
          "avg_price_50d": 2982.518385561687,
          "change_24hour": 2728.472024264639,
          "changepct_24hour": -0.72761998,
          "change_7day": 2889.0490443679905,
          "changepct_7day": 5.11479395,
          "change_1m": -234.56,
          "changepct_1m": -7.89,
          "change_3m": 345.67,
          "changepct_3m": 14.56,
          "change_6m": 567.89,
          "changepct_6m": 26.78,
          "change_1y": 1234.56,
          "changepct_1y": 81.23,
          "one_year_high": 4066.690353397678,
          "one_year_low": 1540.9732397056287,
          "weekly_high": 2768.615443493595,
          "weekly_low": 2573.834787768792
        }
      ]
    },
    "Digital Currency": {
      "General": [
        {
          "coin_id": 1,
          "coin_slug": "bitcoin",
          "name": "Bitcoin",
          "symbol": "BTC",
          "description": "",
          "tier_lvl_1": "Digital Currency",
          "tier_lvl_2": "General",
          "last_updated": "2024-08-25T23:58:00.000Z",
          "price": 64604.15587964322,
          "market_cap": 1275614678405.117,
          "volume": 17575445269.965878,
          "last_daily_close": 64176.36706695918,
          "all_time_high": 73079.3733787985,
          "all_time_low": 0.04951,
          "avg_price_200d": 63241.400978283695,
          "avg_price_50d": 61652.955475512186,
          "change_24hour": 65292.934075997626,
          "changepct_24hour": 1.06615153,
          "change_7day": 70188.21847699354,
          "changepct_7day": 8.64350369,
          "change_1m": -1234.56,
          "changepct_1m": -1.87,
          "change_3m": 2345.67,
          "changepct_3m": 3.76,
          "change_6m": 5678.90,
          "changepct_6m": 9.64,
          "change_1y": 12345.67,
          "changepct_1y": 23.68,
          "one_year_high": 73079.3733787985,
          "one_year_low": 25684.019423324316,
          "weekly_high": 64176.36706695918,
          "weekly_low": 58482.74531725411
        }
      ]
    }
  }
}

This endpoint returns comprehensive taxonomy information for all cryptocurrencies, organized by sector and industry classifications.

HTTP Request

GET https://api.bitformance.com/api/v2/get-taxonomies

Query Parameters

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
data (nested object structure) Description

The response data is organized as a nested object structure: - First level: Sector names (tier_lvl_1) as keys - Second level: Industry names (tier_lvl_2) as keys
- Third level: Arrays of cryptocurrency objects belonging to that sector/industry combination

Individual cryptocurrency objects contain: Description
coin_id Unique coin identifier (CMC ID).
coin_slug URL-friendly version of the coin's name.
name The full name of the cryptocurrency.
symbol The ticker symbol of the cryptocurrency.
description Description of the cryptocurrency.
tier_lvl_1 The level 1 taxonomy classification of the cryptocurrency (sector).
tier_lvl_2 The level 2 taxonomy classification of the cryptocurrency (sub-sector/industry).
last_updated The timestamp of the last time the data for this cryptocurrency was updated.
price The current price of the cryptocurrency (in USD).
market_cap The total market capitalization of the cryptocurrency (price × circulating supply).
volume The total trading volume of the cryptocurrency over the last 24 hours.
last_daily_close The closing price of the cryptocurrency at the end of the last trading day.
all_time_high The highest price ever reached by the cryptocurrency.
all_time_low The lowest price ever reached by the cryptocurrency.
avg_price_200d The average price of the cryptocurrency over the last 200 days.
avg_price_50d The average price of the cryptocurrency over the last 50 days.
change_24hour The change in the cryptocurrency's value over the last 24 hours in dollars.
changepct_24hour The percentage change in the cryptocurrency's value over the last 24 hours.
change_7day The change in the cryptocurrency's value over the last 7 days in dollars.
changepct_7day The percentage change in the cryptocurrency's value over the last 7 days.
change_1m The change in the cryptocurrency's value over the last 1 month in dollars.
changepct_1m The percentage change in the cryptocurrency's value over the last 1 month.
change_3m The change in the cryptocurrency's value over the last 3 months in dollars.
changepct_3m The percentage change in the cryptocurrency's value over the last 3 months.
change_6m The change in the cryptocurrency's value over the last 6 months in dollars.
changepct_6m The percentage change in the cryptocurrency's value over the last 6 months.
change_1y The change in the cryptocurrency's value over the last 1 year in dollars.
changepct_1y The percentage change in the cryptocurrency's value over the last 1 year.
one_year_high The highest price reached by the cryptocurrency in the last year.
one_year_low The lowest price reached by the cryptocurrency in the last year.
weekly_high The highest price reached by the cryptocurrency in the last 7 days.
weekly_low The lowest price reached by the cryptocurrency in the last 7 days.

Example Sectors and Industries

Common sector (tier_lvl_1) and industry (tier_lvl_2) combinations include:

Smart Contract Platform - Layer 1 - Layer 2 - Sidechain

Digital Currency - General - Privacy - Store of Value

DeFi - DEX - Lending - Yield Farming

Infrastructure - Oracle - Interoperability - Storage

Get User Indexes

Access Tier: STARTER

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free Not Available
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL
base_url = "https://api.bitformance.com/api/v2/get-user-indexes"

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
})

user_indexes = response.json()
# Define the base URL
base_url="https://api.bitformance.com/api/v2/get-user-indexes"

# Send the GET request using curl
curl -X GET "$base_url" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL
const baseUrl = 'https://api.bitformance.com/api/v2/get-user-indexes';

// Send the GET request
fetch(baseUrl, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": [
    {
      "index_info": {
        "_id": "6556299b08dca0dc36e973ee",
        "created": "2023-11-16 14:39:23.021000",
        "initial_timestamp": 1483315200,
        "name": "AI Index",
        "description": "AI Index",
        "weighting_method": "market_cap",
        "rebalancing_interval": "daily",
        "custom_weights": {}
      },
      "index_holdings": [
        {
          "ticker": "FET",
          "id": 3773,
          "quantity": 25.487362841
        },
        {
          "ticker": "RNDR",
          "id": 5690,
          "quantity": 150.234789123
        },
        {
          "ticker": "AKT",
          "id": 7431,
          "quantity": 89.567234567
        },
        {
          "ticker": "OCEAN",
          "id": 3911,
          "quantity": 345.123456789
        }
      ],
      "index_performance": {
        "initial_value": 200,
        "value": 1547.23,
        "change_24hour": 34.56,
        "changepct_24hour": 2.28,
        "change_7d": -67.89,
        "changepct_7d": -4.20,
        "change_1m": 123.45,
        "changepct_1m": 8.67,
        "change_3m": 234.56,
        "changepct_3m": 17.90,
        "change_6m": 345.67,
        "changepct_6m": 28.73,
        "change_1y": 456.78,
        "changepct_1y": 41.95
      }
    },
    {
      "index_info": {
        "_id": "6556299b08dca0dc36e973ef",
        "created": "2023-10-05 09:22:15.344000",
        "initial_timestamp": 1483315200,
        "name": "DeFi Portfolio",
        "description": "Custom DeFi token portfolio with equal weighting",
        "weighting_method": "equal_weight",
        "rebalancing_interval": "weekly",
        "custom_weights": {
          "UNI": 25,
          "AAVE": 25,
          "COMP": 25,
          "SUSHI": 25
        }
      },
      "index_holdings": [
        {
          "ticker": "UNI",
          "id": 7083,
          "quantity": 95.234567890
        },
        {
          "ticker": "AAVE",
          "id": 7278,
          "quantity": 12.345678901
        },
        {
          "ticker": "COMP",
          "id": 5692,
          "quantity": 8.567890123
        },
        {
          "ticker": "SUSHI",
          "id": 6758,
          "quantity": 234.567890123
        }
      ],
      "index_performance": {
        "initial_value": 1000,
        "value": 2847.91,
        "change_24hour": 89.12,
        "changepct_24hour": 3.23,
        "change_7d": -156.78,
        "changepct_7d": -5.22,
        "change_1m": 234.56,
        "changepct_1m": 8.98,
        "change_3m": 567.89,
        "changepct_3m": 24.89,
        "change_6m": 789.12,
        "changepct_6m": 38.34,
        "change_1y": 1123.45,
        "changepct_1y": 65.12
      }
    }
  ]
}

This endpoint returns all custom indexes created by the authenticated user, including their configuration, holdings, and performance metrics.

HTTP Request

GET https://api.bitformance.com/api/v2/get-user-indexes

Query Parameters

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
data (array of index objects) Description
index_info Description
_id Unique index identifier.
created Timestamp indicating when the index was created.
initial_timestamp Timestamp representing the starting point for the index's data and performance tracking.
name The name of the index as set by the user.
description The description of the index as set by the user.
weighting_method The method used to assign weights to the assets in the index. Common values: market_cap, equal_weight, custom.
rebalancing_interval The frequency at which the index is rebalanced (e.g., daily, weekly, monthly, quarterly).
custom_weights Contains custom weighting values when the weighting_method is set to "custom". Empty object for other weighting methods.
index_holdings Description
ticker The ticker symbol of the asset held in the index.
id Unique asset identifier (CMC ID).
quantity The amount of the asset currently held in the index (if available).
index_performance Description
initial_value The initial value of the index on inception, also known as the starting investment.
value Current value of the index (if calculated).
change_24hour The change in the index's value over the last 24 hours in dollars (if available).
changepct_24hour The percentage change in the index's value over the last 24 hours (if available).
change_7d The change in the index's value over the last 7 days in dollars (if available).
changepct_7d The percentage change in the index's value over the last 7 days (if available).
change_1m The change in the index's value over the last 1 month in dollars (if available).
changepct_1m The percentage change in the index's value over the last 1 month (if available).
change_3m The change in the index's value over the last 3 months in dollars (if available).
changepct_3m The percentage change in the index's value over the last 3 months (if available).
change_6m The change in the index's value over the last 6 months in dollars (if available).
changepct_6m The percentage change in the index's value over the last 6 months (if available).
change_1y The change in the index's value over the last 1 year in dollars (if available).
changepct_1y The percentage change in the index's value over the last 1 year (if available).

Index Types

User indexes can be configured with different weighting methods:

Market Cap Weighting - Assets are weighted based on their market capitalization - Larger market cap assets have higher weights in the index

Equal Weight - All assets in the index receive equal weighting - Useful for balanced exposure across all holdings

Custom Weighting - User-defined weights for each asset - Allows for precise control over asset allocation - Custom weights are specified as percentages in the custom_weights object

Performance Calculation

Performance metrics are calculated when available and may vary based on: - Index age and data availability - Calculation completion status - Asset data quality and history

Get Index Data

Access Tier: STARTER

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free Not Available
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL and query parameters
base_url = "https://api.bitformance.com/api/v2/get-index-data"
params = {
    "index_id": "65569daf76cd9d2bc8ec55b5",
    "timeseries_interval": "daily",
    "metric": "closing_price"
}

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
}, params=params)

index_data = response.json()
# Define the base URL and query parameters
base_url="https://api.bitformance.com/api/v2/get-index-data"
index_id="65569daf76cd9d2bc8ec55b5"
timeseries_interval="daily"
metric="closing_price"

# Send the GET request using curl
curl -G "$base_url" \
  --data-urlencode "index_id=$index_id" \
  --data-urlencode "timeseries_interval=$timeseries_interval" \
  --data-urlencode "metric=$metric" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL and query parameters
const baseUrl = 'https://api.bitformance.com/api/v2/get-index-data';
const params = new URLSearchParams({
    index_id: '65569daf76cd9d2bc8ec55b5',
    timeseries_interval: 'daily',
    metric: 'closing_price'
});

// Send the GET request
fetch(`${baseUrl}?${params.toString()}`, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": {
    "index_info": {
      "_id": "65569daf76cd9d2bc8ec55b5",
      "created": "2023-11-16 22:54:38.948000",
      "updated": "2024-09-10 15:56:21.374000",
      "initial_timestamp": 1483315200,
      "name": "50/50 Bitcoin + Ethereum",
      "description": "50/50 Bitcoin + Ethereum with a monthly rebalance and an initial starting balance of $1,000.",
      "algorithm": "standard",
      "asset_type": "fixed",
      "weighting_method": "equal_weight",
      "rebalancing_interval": "monthly",
      "custom_weights": {}
    },
    "index_holdings": [
      {
        "ticker": "BTC",
        "id": 1,
        "quantity": 2.1383870222874193
      },
      {
        "ticker": "ETH",
        "id": 1027,
        "quantity": 50.1803901851935
      }
    ],
    "index_performance": {
      "marketcap": 1400425365144.1763,
      "initial_value": "1000",
      "value": 238173.42538224178,
      "drawdown": -35.5936,
      "change_24hour": 4544.369432365114,
      "change_7d": -15594.211603870266,
      "changepct_24hour": 1.9451216861228402,
      "changepct_7d": -6.1450749942254035,
      "change_1m": -22496.40538317163,
      "change_3m": -91255.94576247892,
      "change_6m": -98844.70487499418,
      "change_1y": 105391.0504697602,
      "changepct_1m": -8.630229788048235,
      "changepct_3m": -27.701217242827305,
      "changepct_6m": -29.32919507907451,
      "changepct_1y": 79.37126485290287,
      "asset_new_highs": 0,
      "asset_new_lows": 0,
      "asset_performance_24h_bearish": 2,
      "asset_performance_24h_bullish": 0,
      "asset_sma_200d_over": 0,
      "asset_sma_200d_under": 2,
      "asset_sma_50d_over": 0,
      "asset_sma_50d_under": 2,
      "asset_1y_high": 0,
      "asset_1y_low": 0,
      "asset_alltime_high": 0,
      "asset_alltime_low": 0
    },
    "daily_timeseries_data": [
      {
        "date": "2017-01-02 00:00:00",
        "value": 1000.0
      },
      {
        "date": "2017-01-03 00:00:00",
        "value": 1024.3316236471035
      },
      {
        "date": "2017-01-04 00:00:00",
        "value": 1117.7890317260942
      },
      {
        "date": "2017-01-05 00:00:00",
        "value": 1266.7095610690671
      },
      {
        "date": "2017-01-06 00:00:00",
        "value": 1134.9070354154176
      },
      {
        "date": "2017-01-07 00:00:00",
        "value": 1079.2425800449123
      }
    ]
  }
}

This endpoint returns detailed information for a specific index, including historical performance data. It works with both public indexes and user-created indexes.

HTTP Request

GET https://api.bitformance.com/api/v2/get-index-data

Query Parameters

Parameter Type Required Description
index_id string Yes The hexadecimal ID of the index to query. Index IDs can be retrieved from the "get-browsable-indexes" or "get-user-indexes" endpoints.
timeseries_interval string No Time interval for historical data. Accepted values: daily, fivemin. When daily is used, returns one data point per day at UTC-0. When fivemin is used, returns 24-hour data with data points every 5 minutes.
metric string No The metric to return in timeseries data. Accepted values: closing_price, market_cap. Defaults to closing_price.

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Index Access Control

This endpoint supports both public and private indexes:

Public Indexes - Browsable indexes accessible to all users - Sector indexes and Bitformance-created indexes - No ownership validation required

User Indexes - Custom indexes created by users - Only accessible by the index owner - Ownership is validated against the authenticated user

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
index_info Description
_id Unique index identifier.
created Timestamp indicating when the index was created.
updated Timestamp indicating the last time the index was updated.
initial_timestamp Timestamp representing the starting point for the index's data and performance tracking.
name The name of the index.
description The description of the index.
algorithm The algorithm used to construct the index.
asset_type The type of assets included in the index.
weighting_method The method used to assign weights to the assets in the index.
rebalancing_interval The frequency at which the index is rebalanced.
custom_weights Contains custom weighting values if applicable.
index_holdings Description
ticker The ticker symbol of the asset held in the index.
id Unique asset identifier (CMC ID).
quantity The amount of the asset currently held in the index.
index_performance Description
marketcap The total market capitalization of the index.
initial_value The initial value of the index on inception.
value Current value of the index.
drawdown The maximum percentage loss from the index's peak value over a specified period.
change_24hour The change in the index's value over the last 24 hours in dollars.
changepct_24hour The percentage change in the index's value over the last 24 hours.
change_7d The change in the index's value over the last 7 days in dollars.
changepct_7d The percentage change in the index's value over the last 7 days.
change_1m The change in the index's value over the last 1 month in dollars.
changepct_1m The percentage change in the index's value over the last 1 month.
change_3m The change in the index's value over the last 3 months in dollars.
changepct_3m The percentage change in the index's value over the last 3 months.
change_6m The change in the index's value over the last 6 months in dollars.
changepct_6m The percentage change in the index's value over the last 6 months.
change_1y The change in the index's value over the last 1 year in dollars.
changepct_1y The percentage change in the index's value over the last 1 year.
asset_new_highs The number of holdings in the index that have reached new highs.
asset_new_lows The number of holdings in the index that have reached new lows.
asset_performance_24h_bearish The number of holdings in the index that have a bearish performance (negative returns) over the last 24 hours.
asset_performance_24h_bullish The number of holdings in the index that have a bullish performance (positive returns) over the last 24 hours.
asset_sma_200d_over The number of holdings in the index that are currently trading above their 200-day simple moving average (SMA).
asset_sma_200d_under The number of holdings in the index that are currently trading under their 200-day simple moving average (SMA).
asset_sma_50d_over The number of holdings in the index that are currently trading above their 50-day simple moving average (SMA).
asset_sma_50d_under The number of holdings in the index that are currently trading under their 50-day simple moving average (SMA).
asset_1y_high The number of holdings in the index that have reached their highest price in the last year.
asset_1y_low The number of holdings in the index that have reached their lowest price in the last year.
asset_alltime_high The number of holdings in the index that have reached their highest price ever.
asset_alltime_low The number of holdings in the index that have reached their lowest price ever.
daily_timeseries_data / fivemin_timeseries_data (when timeseries_interval is provided) Description
date The date and time in "YYYY-MM-DD HH:MM:SS" format representing the timestamp of the data point.
value The corresponding value (closing price or market cap) of the index at the specified date and time.

Error Handling

If the requested index cannot be found or accessed, the endpoint will return an error message indicating the issue. Common error scenarios include:

Get User API Summary

Access Tier: FREE

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free 10 requests per minute
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL
base_url = "https://api.bitformance.com/api/v2/get-user-api-summary"

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
})

api_summary = response.json()
# Define the base URL
base_url="https://api.bitformance.com/api/v2/get-user-api-summary"

# Send the GET request using curl
curl -X GET "$base_url" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL
const baseUrl = 'https://api.bitformance.com/api/v2/get-user-api-summary';

// Send the GET request
fetch(baseUrl, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": {
    "api-key": "66da2b63c98b629570796964",
    "tier": "starter",
    "credits": 247832,
    "expiration": "2024-10-04T11:06:44.991000",
    "active": true
  }
}

This endpoint returns API usage information and account details for the authenticated user.

HTTP Request

GET https://api.bitformance.com/api/v2/get-user-api-summary

Query Parameters

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
data Description
api-key The user's API key identifier.
tier The current subscription tier of the user. Possible values: free, starter, analyst, professional, enterprise.
credits The number of API credits remaining for the current billing period.
expiration The expiration date and time of the current subscription in ISO 8601 format.
active Boolean indicating whether the API key is currently active and functional.

Subscription Tiers

The API supports five subscription tiers with different features and limits:

Free Tier - 5,000 credits per month - 10 requests per minute - 3 months of historical data - Access to basic endpoints

Starter Tier - 250,000 credits per month - 20 requests per minute - 6 months of historical data - Access to advanced endpoints

Analyst Tier - 250,000 credits per month - 20 requests per minute - 3 years of historical data - Full endpoint access

Professional Tier - 250,000 credits per month - 30 requests per minute - All time historical data - Commercial use available - Priority support

Enterprise Tier - 2,000,000 credits per month - Custom rate limits - All time historical data - Commercial use available - Beta features available - Dedicated support

Credit Management

Use Cases

Error Scenarios

If no API keys are found for the user, the endpoint will return a message indicating that no API keys exist for the account. This typically occurs when:

Get User API Transactions

Access Tier: FREE

Credits Cost: 1 credit per request

Rate Limits

Tier Limit
Free 10 requests per minute
Starter 20 requests per minute
Analyst 20 requests per minute
Professional 30 requests per minute
Enterprise Custom
import requests

# Define the base URL
base_url = "https://api.bitformance.com/api/v2/get-user-api-transactions"

# Send the GET request
response = requests.get(base_url, headers={
    "API-KEY": "your_api_key",
    "API-SECRET-KEY": "your_secret_key"
})

api_transactions = response.json()
# Define the base URL
base_url="https://api.bitformance.com/api/v2/get-user-api-transactions"

# Send the GET request using curl
curl -X GET "$base_url" \
  -H "API-KEY: your_api_key" \
  -H "API-SECRET-KEY: your_secret_key"
const fetch = require('node-fetch');

// Define the base URL
const baseUrl = 'https://api.bitformance.com/api/v2/get-user-api-transactions';

// Send the GET request
fetch(baseUrl, {
    method: 'GET',
    headers: {
        'API-KEY': 'your_api_key',
        'API-SECRET-KEY': 'your_secret_key'
    }
})
.then(response => response.json())
.then(data => console.log(data));

The above command returns JSON structured like this:

{
  "success": true,
  "data": {
    "user_id": "66da2b63c98b629570796964",
    "api_calls": [
      {
        "id": 1,
        "endpoint": "api.get_browsable_indexes",
        "timestamp": 1693478400,
        "status_code": 200,
        "size_kb": 45,
        "latency": 0.234
      },
      {
        "id": 2,
        "endpoint": "api.get_coin_data",
        "timestamp": 1693478460,
        "status_code": 200,
        "size_kb": 12,
        "latency": 0.156
      },
      {
        "id": 3,
        "endpoint": "api.get_user_indexes",
        "timestamp": 1693478520,
        "status_code": 403,
        "size_kb": 1,
        "latency": 0.089
      },
      {
        "id": 4,
        "endpoint": "api.get_altcoin_season",
        "timestamp": 1693478580,
        "status_code": 200,
        "size_kb": 8,
        "latency": 0.123
      }
    ]
  }
}

This endpoint returns a detailed history of all API calls made by the authenticated user, including performance metrics and response information.

HTTP Request

GET https://api.bitformance.com/api/v2/get-user-api-transactions

Query Parameters

Headers

Header Description
API-KEY Your unique API key.
API-SECRET-KEY Your API secret key.

Response

field Description
success A boolean value indicating whether the API request was successful (true) or not (false).
data Description
user_id The unique identifier of the user making the API calls.
api_calls (array of transaction objects) Description
id Unique identifier for the API transaction.
endpoint The specific API endpoint that was called (e.g., "api.get_browsable_indexes").
timestamp Unix timestamp indicating when the API call was made.
status_code HTTP status code returned by the API call (e.g., 200 for success, 403 for forbidden, 500 for server error).
size_kb Size of the API response in kilobytes.
latency Response time for the API call in seconds.

Transaction Analysis

The transaction history provides valuable insights for:

Performance Monitoring - Track response times across different endpoints - Identify slow-performing API calls - Monitor data transfer volumes

Usage Patterns - Analyze which endpoints are used most frequently - Review API call timing and frequency - Understand application behavior patterns

Error Analysis - Identify failed requests and error patterns - Debug authentication or permission issues - Track retry behavior and success rates

Cost Management - Monitor credit consumption patterns - Identify high-volume usage periods - Plan for credit needs based on historical usage

Status Codes

Common HTTP status codes in transaction history:

Status Code Description
200 Success - Request completed successfully
400 Bad Request - Invalid parameters or request format
401 Unauthorized - Invalid or missing API credentials
403 Forbidden - Insufficient permissions or credits
404 Not Found - Endpoint or resource not found
429 Too Many Requests - Rate limit exceeded
500 Internal Server Error - Server-side error occurred

Data Retention

Transaction history is maintained to provide comprehensive usage analytics. The data includes:

Use Cases

Errors

The Bitformance API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
403 Forbidden -- The API keys in the request were invalid.
404 Not Found -- The specified endpoint could not be found.
429 Too Many Requests -- You have exceeded your API Key's rate limit according to its tier.
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.