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_hereandyour_api_secret_key_herewith 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:
- Free (5000 credits per month, 10 requests per minute, 3 months historical data)
- Starter (250000 credits per month, 20 requests per minute, 6 months historical data)
- Analyst (250000 credits per month, 20 requests per minute, 3 years historical data)
- Professional (250000 credits per month, 30 requests per minute, all time historical data, commercial use available)
- Enterprise (2000000 credits per month, custom rate limits, all time historical data, commercial use available, beta features available)
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.
- Free: 10 requests per minute
- Starter: 20 requests per minute
- Analyst: 20 requests per minute
- Professional: 30 requests per minute
- Enterprise: Custom requests per minute
Historical Data Access
Different subscription tiers have access to different amounts of historical data:
- Free: 3 months of historical data
- Starter: 6 months of historical data
- Analyst: 3 years of historical data
- Professional: All time historical data
- Enterprise: All time 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
response = requests.get('https://api.bitformance.com/api/v2/get-all-coins',
headers={
'API-KEY': 'your_api_key',
'API-SECRET-KEY': 'your_secret_key'
},
params={
'page': 1,
'page_size': 100,
'sortBy': 'market_cap',
'sortOrder': 'desc',
'exclude_fields': 'description'
})
coin_data = response.json()
curl -G "https://api.bitformance.com/api/v2/get-all-coins" \
--data-urlencode "page=1" \
--data-urlencode "page_size=100" \
--data-urlencode "sortBy=market_cap" \
--data-urlencode "sortOrder=desc" \
--data-urlencode "exclude_fields=description" \
-H "API-KEY: your_api_key" \
-H "API-SECRET-KEY: your_secret_key"
const response = await fetch('https://api.bitformance.com/api/v2/get-all-coins?page=1&page_size=100&sortBy=market_cap&sortOrder=desc&exclude_fields=description', {
method: 'GET',
headers: {
'API-KEY': 'your_api_key',
'API-SECRET-KEY': 'your_secret_key'
}
});
const coinData = await response.json();
The above command returns JSON structured like this:
{
"success": true,
"data": [
{
"coin_id": 1,
"coin_slug": "bitcoin",
"name": "Bitcoin",
"symbol": "BTC",
"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, filtering, and field selection.
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 |
| include_fields | string | - | Comma-separated list of fields to include in response. When specified, only these fields will be returned. Example: coin_id,name,symbol,price |
| exclude_fields | string | - | Comma-separated list of fields to exclude from response. Cannot be used with include_fields. Example: description,tier_lvl_1 |
Field Selection
You can control which fields are returned in the response using two mutually exclusive parameters:
Include Fields
Use include_fields to specify exactly which fields you want:
GET /api/v2/get-all-coins?include_fields=coin_id,name,symbol,price,market_cap
Exclude Fields
Use exclude_fields to remove specific fields from the default response:
GET /api/v2/get-all-coins?exclude_fields=description,tier_lvl_1,tier_lvl_2
Available Fields
coin_id- Unique coin identifier (CMC ID)coin_slug- URL-friendly version of the coin's namename- The full name of the cryptocurrencysymbol- The ticker symbol of the cryptocurrencydescription- Description of the cryptocurrency (excluded by default)tier_lvl_1- Level 1 taxonomy classification (sector)tier_lvl_2- Level 2 taxonomy classification (sub-sector/industry)last_updated- Timestamp of last data updateprice- Current price in USDmarket_cap- Total market capitalizationvolume- 24-hour trading volumelast_daily_close- Previous day's closing priceall_time_high- Highest price ever reachedall_time_low- Lowest price ever reachedavg_price_200d- 200-day average priceavg_price_50d- 50-day average pricechange_24hour- 24-hour price change in dollarschangepct_24hour- 24-hour price change percentagechange_7day- 7-day price change in dollarschangepct_7day- 7-day price change percentagechange_1m- 1-month price change in dollarschangepct_1m- 1-month price change percentagechange_3m- 3-month price change in dollarschangepct_3m- 3-month price change percentagechange_6m- 6-month price change in dollarschangepct_6m- 6-month price change percentagechange_1y- 1-year price change in dollarschangepct_1y- 1-year price change percentageone_year_high- Highest price in the last yearone_year_low- Lowest price in the last yearweekly_high- Highest price in the last 7 daysweekly_low- Lowest price in the last 7 days
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. (Excluded by default) |
| 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. |
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",
"exclude_fields": "description"
}
# 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" \
--data-urlencode "exclude_fields=description" \
-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',
exclude_fields: 'description'
});
// 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,
"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,
"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. Data access is limited based on subscription tier. |
| metric | string | No | The metric to return in timeseries data. Accepted values: closing_price, market_cap. Defaults to closing_price. |
| include_fields | string | No | Comma-separated list of fields to include in response. When specified, only these fields will be returned. Example: cmc_id,name,symbol,price |
| exclude_fields | string | No | Comma-separated list of fields to exclude from response. Cannot be used with include_fields. Example: description,tier_lvl_1 |
Field Selection
You can control which fields are returned in the response using two mutually exclusive parameters:
Include Fields
Use include_fields to specify exactly which fields you want:
GET /api/v2/get-coin-data?symbols=BTC,ETH&include_fields=cmc_id,name,symbol,price,marketcap
Exclude Fields
Use exclude_fields to remove specific fields from the default response:
GET /api/v2/get-coin-data?symbols=BTC,ETH&exclude_fields=description,tier_lvl_1,tier_lvl_2
Available Fields
cmc_id- Unique coin identifier (CMC ID)symbol- The ticker symbol of the cryptocurrencyname- The full name of the cryptocurrencymarketcap- Total market capitalizationvolume- 24-hour trading volumeprice- Current price in USDchange_24hour- 24-hour price change in dollarschange_7day- 7-day price change in dollarschangepct_24hour- 24-hour price change percentagechangepct_7day- 7-day price change percentagechange_1m- 1-month price change in dollarschangepct_1m- 1-month price change percentagechange_3m- 3-month price change in dollarschangepct_3m- 3-month price change percentagechange_6m- 6-month price change in dollarschangepct_6m- 6-month price change percentagechange_1y- 1-year price change in dollarschangepct_1y- 1-year price change percentagedescription- Description of the cryptocurrency (excluded by default)tier_lvl_1- Level 1 taxonomy classification (sector)tier_lvl_2- Level 2 taxonomy classification (sub-sector/industry)
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. (Excluded by default) |
| 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). |
| daily_timeseries_data | Array of daily price data points (only when timeseries_interval=daily). |
| fivemin_timeseries_data | Array of 5-minute price data points (only when timeseries_interval=fivemin). |
| initial_value | The first value in the timeseries data (only when timeseries_interval is specified). |
Get Bitformance Altcoin Index
Access Tier: STARTER
Credits Cost: 5 credits per request
Rate Limits
| Tier | Limit |
|---|---|
| Free | Not accessible |
| Starter | 15 requests per minute |
| Analyst | 15 requests per minute |
| Professional | 20 requests per minute |
| Enterprise | Custom |
import requests
response = requests.get('https://api.bitformance.com/api/v2/get-bitformance-altcoin-index',
headers={
'API-KEY': 'your_api_key',
'API-SECRET-KEY': 'your_secret_key'
},
params={
'timeseries_interval': 'daily',
'weighting_method': 'market_cap',
'metric': 'closing_price',
'exclude_fields': 'description'
})
index_data = response.json()
curl -G "https://api.bitformance.com/api/v2/get-bitformance-altcoin-index" \
--data-urlencode "timeseries_interval=daily" \
--data-urlencode "weighting_method=market_cap" \
--data-urlencode "metric=closing_price" \
--data-urlencode "exclude_fields=description" \
-H "API-KEY: your_api_key" \
-H "API-SECRET-KEY: your_secret_key"
const response = await fetch('https://api.bitformance.com/api/v2/get-bitformance-altcoin-index?timeseries_interval=daily&weighting_method=market_cap&metric=closing_price&exclude_fields=description', {
method: 'GET',
headers: {
'API-KEY': 'your_api_key',
'API-SECRET-KEY': 'your_secret_key'
}
});
const indexData = await response.json();
The above command returns JSON structured like this:
{
"success": true,
"data": {
"index_info": {
"_id": "66bab123456789abcdef0123",
"created": "2024-01-15T10:30:00.000Z",
"updated": "2024-08-25T22:30:00.000Z",
"initial_timestamp": "2017-04-01T00:00:00.000Z",
"name": "Bitformance Altcoin Index",
"description": "Tracks the performance of the top altcoins weighted by market capitalization",
"algorithm": "top_ranked",
"sector": "All",
"industry": "All",
"asset_type": "dynamic",
"weighting_method": "market_cap",
"rebalancing_interval": "monthly",
"custom_weights": {}
},
"index_holdings": [
{
"ticker": "ETH",
"id": 1027,
"quantity": 15.234567
},
{
"ticker": "BNB",
"id": 1839,
"quantity": 8.456789
}
],
"index_performance": {
"marketcap": 12500000000.50,
"initial_value": 1000.0,
"value": 2847.23,
"drawdown": -12.45,
"change_24hour": 2851.67,
"change_7d": 2734.89,
"changepct_24hour": 0.16,
"changepct_7d": -3.95,
"change_1m": 2623.45,
"change_3m": 2156.78,
"change_6m": 1987.34,
"change_1y": 1543.21,
"changepct_1m": -7.86,
"changepct_3m": -24.26,
"changepct_6m": -30.20,
"changepct_1y": -45.80,
"asset_new_highs": 3,
"asset_new_lows": 1,
"asset_performance_24h_bearish": 12,
"asset_performance_24h_bullish": 38,
"asset_sma_200d_over": 25,
"asset_sma_200d_under": 25,
"asset_sma_50d_over": 30,
"asset_sma_50d_under": 20,
"asset_1y_high": 8,
"asset_1y_low": 2,
"asset_alltime_high": 5,
"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": 1089.5754208146486
},
{
"date": "2017-04-04 00:00:00",
"value": 1134.4590760724552
}
],
"constituent_info": [
{
"coin_id": 1027,
"coin_slug": "ethereum",
"name": "Ethereum",
"symbol": "ETH",
"tier_lvl_1": "Smart Contract Platform",
"tier_lvl_2": "Layer 1",
"last_updated": "2024-08-25T22:28:00.000Z",
"price": 2337.312950154836,
"market_cap": 281239666935.0205,
"volume": 13784465135.147797,
"last_daily_close": 2350.33965816199,
"all_time_high": 4066.690353397678,
"all_time_low": 1540.9732397056287,
"avg_price_200d": 2789.45,
"avg_price_50d": 2456.12,
"change_24hour": 2350.33965816199,
"changepct_24hour": 0.55733692,
"change_7day": 2235.9280441047767,
"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,
"one_year_high": 4066.690353397678,
"one_year_low": 1540.9732397056287,
"weekly_high": 2768.615443493595,
"weekly_low": 2573.834787768792
}
]
}
}
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 | Default | 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 | market_cap | The weighting method for the index. Accepted values: market_cap, equal_weight. Defaults to market_cap if not specified or invalid. |
| metric | string | closing_price | The metric to return in timeseries data. Accepted values: closing_price, market_cap. Defaults to closing_price. |
| include_fields | string | - | Comma-separated list of fields to include in constituent_info objects. When specified, only these fields will be returned. Example: coin_id,name,symbol,price |
| exclude_fields | string | - | Comma-separated list of fields to exclude from constituent_info objects. Cannot be used with include_fields. Example: description,tier_lvl_1 |
Field Selection for Constituent Info
You can control which fields are returned in the constituent_info array using two mutually exclusive parameters:
Include Fields
Use include_fields to specify exactly which fields you want in each constituent object:
GET /api/v2/get-bitformance-altcoin-index?include_fields=coin_id,name,symbol,price,market_cap
Exclude Fields
Use exclude_fields to remove specific fields from constituent objects:
GET /api/v2/get-bitformance-altcoin-index?exclude_fields=description,avg_price_200d,avg_price_50d
Available Fields for Constituents
coin_id- Unique coin identifier (CMC ID)coin_slug- URL-friendly version of the coin's namename- The full name of the cryptocurrencysymbol- The ticker symbol of the cryptocurrencydescription- Description of the cryptocurrency (excluded by default)tier_lvl_1- Level 1 taxonomy classification (sector)tier_lvl_2- Level 2 taxonomy classification (sub-sector/industry)last_updated- Timestamp of last data updateprice- Current price in USDmarket_cap- Total market capitalizationvolume- 24-hour trading volumelast_daily_close- Previous day's closing priceall_time_high- Highest price ever reachedall_time_low- Lowest price ever reachedavg_price_200d- 200-day average priceavg_price_50d- 50-day average price- All change and performance metrics (
change_24hour,changepct_24hour, etc.)
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 | The unique identifier of the asset. |
| quantity | The quantity of the asset held in the index. |
| index_performance | Description |
|---|---|
| marketcap | The total market capitalization of the index. |
| initial_value | The initial value of the index when it was created. |
| value | The current value of the index. |
| drawdown | The maximum drawdown from peak value. |
| change_24hour | The change in the index value over the last 24 hours. |
| change_7d | The change in the index value over the last 7 days. |
| changepct_24hour | The percentage change in the index value over the last 24 hours. |
| changepct_7d | The percentage change in the index value over the last 7 days. |
| change_1m | The change in the index value over the last 1 month. |
| change_3m | The change in the index value over the last 3 months. |
| change_6m | The change in the index value over the last 6 months. |
| change_1y | The change in the index value over the last 1 year. |
| changepct_1m | The percentage change in the index value over the last 1 month. |
| changepct_3m | The percentage change in the index value over the last 3 months. |
| changepct_6m | The percentage change in the index value over the last 6 months. |
| changepct_1y | The percentage change in the index value over the last 1 year. |
| asset_new_highs | Number of assets in the index that are at new highs. |
| asset_new_lows | Number of assets in the index that are at new lows. |
| asset_performance_24h_bearish | Number of assets with negative 24-hour performance. |
| asset_performance_24h_bullish | Number of assets with positive 24-hour 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 their 1-year high. |
| asset_1y_low | Number of assets at their 1-year low. |
| asset_alltime_high | Number of assets at their all-time high. |
| asset_alltime_low | Number of assets at their all-time low. |
| constituent_info | Description |
|---|
Array of cryptocurrency objects representing the current constituents of the index. Field structure follows the same pattern as other coin endpoints, with description excluded by default for performance.
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
- Historical analysis of top cryptocurrency market performance
- Understanding how the composition of top cryptocurrencies has changed over time
- Backtesting strategies based on top-ranked cryptocurrency indexes
- Research into market concentration and dominance patterns
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:
- Values closer to 0: Bitcoin is outperforming most altcoins (Bitcoin season)
- Values closer to 1: Altcoins are outperforming Bitcoin (Altcoin season)
- Values around 0.5: Mixed performance between Bitcoin and altcoins
This index helps traders and analysts identify market cycles and periods when altcoins tend to outperform or underperform relative to Bitcoin.
Use Cases
- Market Cycle Analysis: Identify periods of altcoin strength vs Bitcoin dominance
- Portfolio Strategy: Inform allocation decisions between Bitcoin and altcoins
- Trend Analysis: Understand historical patterns in crypto market leadership
- Research: Study correlations between market cycles and altcoin performance
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
response = requests.get('https://api.bitformance.com/api/v2/get-taxonomies',
headers={
'API-KEY': 'your_api_key',
'API-SECRET-KEY': 'your_secret_key'
},
params={
'exclude_fields': 'description'
})
taxonomy_data = response.json()
curl -G "https://api.bitformance.com/api/v2/get-taxonomies" \
--data-urlencode "exclude_fields=description" \
-H "API-KEY: your_api_key" \
-H "API-SECRET-KEY: your_secret_key"
const response = await fetch('https://api.bitformance.com/api/v2/get-taxonomies?exclude_fields=description', {
method: 'GET',
headers: {
'API-KEY': 'your_api_key',
'API-SECRET-KEY': 'your_secret_key'
}
});
const taxonomyData = await response.json();
The above command returns JSON structured like this:
{
"success": true,
"data": {
"Smart Contract Platform": {
"Layer 1": [
{
"coin_id": 1027,
"coin_slug": "ethereum",
"name": "Ethereum",
"symbol": "ETH",
"tier_lvl_1": "Smart Contract Platform",
"tier_lvl_2": "Layer 1",
"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
}
]
},
"Digital Currency": {
"General": [
{
"coin_id": 1,
"coin_slug": "bitcoin",
"name": "Bitcoin",
"symbol": "BTC",
"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
| Parameter | Type | Default | Description |
|---|---|---|---|
| include_fields | string | - | Comma-separated list of fields to include in cryptocurrency objects. When specified, only these fields will be returned. Example: coin_id,name,symbol,price |
| exclude_fields | string | - | Comma-separated list of fields to exclude from cryptocurrency objects. Cannot be used with include_fields. Example: description,tier_lvl_1 |
Field Selection
You can control which fields are returned in the cryptocurrency objects using two mutually exclusive parameters:
Include Fields
Use include_fields to specify exactly which fields you want in each cryptocurrency object:
GET /api/v2/get-taxonomies?include_fields=coin_id,name,symbol,price,market_cap
Exclude Fields
Use exclude_fields to remove specific fields from cryptocurrency objects:
GET /api/v2/get-taxonomies?exclude_fields=description,avg_price_200d,avg_price_50d
Available Fields
coin_id- Unique coin identifier (CMC ID)coin_slug- URL-friendly version of the coin's namename- The full name of the cryptocurrencysymbol- The ticker symbol of the cryptocurrencydescription- Description of the cryptocurrency (excluded by default)tier_lvl_1- Level 1 taxonomy classification (sector)tier_lvl_2- Level 2 taxonomy classification (sub-sector/industry)last_updated- Timestamp of last data updateprice- Current price in USDmarket_cap- Total market capitalizationvolume- 24-hour trading volumelast_daily_close- Previous day's closing priceall_time_high- Highest price ever reachedall_time_low- Lowest price ever reachedavg_price_200d- 200-day average priceavg_price_50d- 50-day average pricechange_24hour- 24-hour price change in dollarschangepct_24hour- 24-hour price change percentagechange_7day- 7-day price change in dollarschangepct_7day- 7-day price change percentagechange_1m- 1-month price change in dollarschangepct_1m- 1-month price change percentagechange_3m- 3-month price change in dollarschangepct_3m- 3-month price change percentagechange_6m- 6-month price change in dollarschangepct_6m- 6-month price change percentagechange_1y- 1-year price change in dollarschangepct_1y- 1-year price change percentageone_year_high- Highest price in the last yearone_year_low- Lowest price in the last yearweekly_high- Highest price in the last 7 daysweekly_low- Lowest price in the last 7 days
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. (Excluded by default) |
| 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. |
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:
- Invalid index ID format
- Index not found
- Insufficient permissions (for user indexes)
- Index data unavailable
Get Rebalancing History
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-rebalancing-history"
params = {
"index_id": "67a4eef73960076e78e166ca"
}
# Send the GET request
response = requests.get(base_url, headers={
"API-KEY": "your_api_key",
"API-SECRET-KEY": "your_secret_key"
}, params=params)
rebalancing_data = response.json()
# Define the base URL and query parameters
base_url="https://api.bitformance.com/api/v2/get-rebalancing-history"
index_id="67a4eef73960076e78e166ca"
# Send the GET request using curl
curl -G "$base_url" \
--data-urlencode "index_id=$index_id" \
-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-rebalancing-history';
const params = new URLSearchParams({
index_id: '67a4eef73960076e78e166ca'
});
// 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:
{
"index_id": "67a4eef73960076e78e166ca",
"coin_map": {
"1": {
"symbol": "BTC",
"name": "Bitcoin"
},
"1027": {
"symbol": "ETH",
"name": "Ethereum"
},
"825": {
"symbol": "USDT",
"name": "Tether USDt"
},
"1839": {
"symbol": "BNB",
"name": "BNB"
},
"5426": {
"symbol": "SOL",
"name": "Solana"
}
},
"rebalances": [
{
"date": "2024-01-01T00:00:00",
"timestamp": 1704067200,
"holdings": {
"1_holdings": 0.6731870276692127,
"1027_holdings": 3.7408942429832663,
"825_holdings": 1549.1099375665074,
"1839_holdings": 0.2982448128211017,
"5426_holdings": 0.5889244655559327
}
},
{
"date": "2024-02-01T00:00:00",
"timestamp": 1706745600,
"holdings": {
"1_holdings": 0.7124556892341255,
"1027_holdings": 4.1203845672931847,
"825_holdings": 1623.8956234178953,
"1839_holdings": 0.3156789234567891,
"5426_holdings": 0.6234567890123456
}
},
{
"date": "2024-03-01T00:00:00",
"timestamp": 1709251200,
"holdings": {
"1_holdings": 0.6892345678901234,
"1027_holdings": 3.9876543210987654,
"825_holdings": 1587.3456789012345,
"1839_holdings": 0.3098765432109876,
"5426_holdings": 0.6012345678901234
}
}
]
}
This endpoint returns the complete rebalancing history for a specific index, showing how asset allocations have changed over time during each rebalancing period.
HTTP Request
GET https://api.bitformance.com/api/v2/get-rebalancing-history
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" endpoint. Must be a sector index or market cap tiered index. |
Headers
| Header | Description |
|---|---|
| API-KEY | Your unique API key. |
| API-SECRET-KEY | Your API secret key. |
Response
| field | Description |
|---|---|
| index_id | The unique identifier for the requested index. |
| coin_map | An object mapping coin IDs to their symbol and name information. Keys are coin IDs (as strings), and values contain the coin's symbol and full name. |
| rebalances | An array of rebalancing events, ordered chronologically. Each event contains the date, timestamp, and holdings for that rebalancing period. |
Rebalance Object Structure
Each object in the rebalances array contains:
| Field | Description |
|---|---|
| date | The date and time of the rebalancing event in ISO 8601 format (YYYY-MM-DDTHH:MM:SS). |
| timestamp | The Unix timestamp (in seconds) of the rebalancing event. |
| holdings | An object mapping coin holdings keys to actual quantities held. Keys are in the format {coin_id}_holdings, where coin_id corresponds to a key in the coin_map. Values represent the actual number of coins/tokens held in the index at that rebalancing (e.g., 0.673 BTC, 3.74 ETH, etc...). |
Understanding the Response
The rebalancing history shows how the index composition has changed over time:
coin_map - Provides a lookup table for all coins that have ever been included in the index - Keys are unique coin IDs (converted to strings) - Each entry contains the coin's trading symbol and full name
rebalances
- An array of historical rebalancing events
- Each event is timestamped and contains the complete holdings allocation at that point in time
- Events are ordered chronologically from earliest to most recent
- The holdings object uses keys in the format {coin_id}_holdings to map to allocation percentages
holdings
- Keys follow the pattern {coin_id}_holdings (e.g., 1_holdings for Bitcoin)
- Values represent the actual quantity of that coin held in the index (not percentages)
- For example, "1_holdings": 0.6731870276692127 means the index holds 0.673 Bitcoin
- If a coin wasn't included at a particular rebalancing, it will be absent from the holdings object
- The coin_id in each holdings key corresponds to a coin_id in the coin_map
Use Cases
This endpoint is valuable for: - Analyzing how index composition changes over time - Understanding asset allocation shifts in response to market conditions - Tracking when new assets enter or exit the index - Evaluating index diversification trends - Building visualizations of index evolution - Backtesting index performance with historical allocations
Error Handling
Common error scenarios include:
- Invalid index ID format
- Index not found
- Rebalancing history not available for this index type (e.g., custom user indexes)
- Insufficient permissions
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
- Monthly Reset: Credits are replenished at the start of each billing cycle
- No Rollover: Unused credits do not carry over to the next month
- Real-time Tracking: Credit balance is updated with each API request
- Usage Monitoring: Track your consumption to avoid service interruption
Use Cases
- Monitor Usage: Check remaining credits and plan API usage accordingly
- Validate Access: Confirm subscription tier and feature availability
- Account Management: Verify subscription status and expiration dates
- Integration Planning: Design applications based on rate limits and credit allowances
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:
- The user account has not yet generated API keys
- API keys have been revoked or deleted
- There are issues with account provisioning
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:
- Complete Call History: All API calls made by the user account
- Performance Metrics: Response times and data transfer sizes
- Chronological Order: Transactions ordered by timestamp (ascending)
- Detailed Status: Success/failure status for each call
Use Cases
- Usage Analytics: Understand API consumption patterns
- Performance Optimization: Identify bottlenecks and optimize requests
- Billing Analysis: Track credit usage and plan subscription needs
- Debugging: Troubleshoot failed requests and integration issues
- Compliance: Maintain audit trails for API usage
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. |