₿ Crypto
Crypto API for coin profiles, quotes, and holders.
- Coin list and profiles
- Quotes
- Market modules
- Holder data
GET /v1/crypto/profile
requires authentication
Get profile for a specific crypto currency
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/crypto/profile'
params = {
'key': 'bitcoin',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/crypto/profile';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'key' => 'bitcoin',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/crypto/profile"
);
const params = {
"key": "bitcoin",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/crypto/profile?key=bitcoin" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"key": "Bitcoin"
},
"body": {
"key": "bitcoin",
"name": "Bitcoin",
"symbol": "BTC",
"category": "coin",
"description": "## What Is Bitcoin (BTC)?\n\n[Bitcoin](https://coinmarketcap.com/alexandria/article/an-intro-to-bitcoin) is a decentralized [cryptocurrency](https://coinmarketcap.com/alexandria/article/what-are-cryptocurrencies) originally described in a 2008 [whitepaper](https://coinmarketcap.com/alexandria/glossary/whitepaper) by a person, or group of people, using the alias [Satoshi Nakamoto](https://coinmarketcap.com/alexandria/article/who-is-satoshi-nakamoto). It was launched soon after, in January 2009.\n\n[Bitcoin](https://coinmarketcap.com/alexandria/article/what-is-bitcoin) is a peer-to-peer online currency, meaning that all [transactions](https://coinmarketcap.com/alexandria/article/how-long-does-a-bitcoin-transaction-take) happen directly between equal, independent network participants, without the need for any intermediary to permit or facilitate them. Bitcoin was created, according to Nakamoto’s own words, to allow “online payments to be sent directly from one party to another without going through a financial institution...",
"dateAdded": "2010-07-13T00:00:00.000Z",
"status": "active",
"urls": {
"website": [
"https://bitcoin.org/"
],
"technical_doc": [
"https://bitcoin.org/bitcoin.pdf"
],
"explorer": [
"https://blockchain.info/",
"https://live.blockcypher.com/btc/",
"https://blockchair.com/bitcoin",
"https://explorer.viabtc.com/btc",
"https://www.oklink.com/btc"
],
"source_code": [
"https://github.com/bitcoin/bitcoin"
],
"message_board": [
"https://coinmarketcap.com/community/profile/Bitcoin_CMC",
"https://coinmarketcap.com/community/search/top/bitcoin",
"https://bitcointalk.org"
],
"chat": [],
"announcement": [],
"reddit": [
"https://reddit.com/r/bitcoin"
],
"facebook": [],
"twitter": []
}
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/crypto/holders
requires authentication
Get the number of holders for a specific crypto currency
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/crypto/holders'
params = {
'key': 'bitcoin',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/crypto/holders';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'key' => 'bitcoin',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/crypto/holders"
);
const params = {
"key": "bitcoin",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/crypto/holders?key=bitcoin" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"key": "Bitcoin",
"holderCount": 48834937,
"dailyActive": 963625,
"total": 100
},
"data": [
{
"address": "34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo",
"balance": 248597.3905837,
"share": 1.18
},
{ ... }
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/crypto/quotes
requires authentication
Get quotes for a specific crypto currency
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/crypto/quotes'
params = {
'key': 'bitcoin',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/crypto/quotes';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'key' => 'bitcoin',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/crypto/quotes"
);
const params = {
"key": "bitcoin",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/crypto/quotes?key=bitcoin" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"key": "Bitcoin",
"total": 48
},
"data": {
"price": 27777.48286131564,
"priceChangePercentage1h": -2.15185151,
"priceChangePercentage24h": -4.02576734,
"priceChangePercentage7d": -5.49823801,
"priceChangePercentage30d": -7.16085892,
"priceChangePercentage60d": 4.37805208,
"priceChangePercentage90d": 3.1949905,
"priceChangePercentageAll": 449231.6256237841,
"marketCap": 540557260846.61,
"marketCapChangePercentage24h": -4.0204,
"fullyDilutedMarketCap": 583327140087.63,
"fullyDilutedMarketCapChangePercentage24h": -4.03,
"circulatingSupply": 19460268,
"totalSupply": 19460268,
"maxSupply": 21000000,
"marketCapDominance": 48.8796,
"rank": 1,
"roi": 44923077.09278923,
"low24h": 27718.146260229056,
"high24h": 29192.260813211757,
"low7d": 27718.146260229056,
"high7d": 29660.25433927243,
"low30d": 27718.146260229056,
"high30d": 30330.64039201111,
"low90d": 24797.167848615383,
"high90d": 31814.51481206781,
"low52w": 15599.047175382899,
"high52w": 31814.51481206781,
"lowAllTime": 0.04864654,
"highAllTime": 68789.62593892214,
"lowAllTimeChangePercentage": 57100534.21,
"highAllTimeChangePercentage": -59.62,
"lowAllTimeTimestamp": "2010-07-14T19:24:00.000Z",
"highAllTimeTimestamp": "2021-11-10T14:17:02.000Z",
"lowYesterday": 28701.77952453054,
"highYesterday": 29221.97574297547,
"openYesterday": 29169.074019916276,
"closeYesterday": 28701.77952453054,
"priceChangePercentageYesterday": -1.6,
"volumeYesterday": 14949271904.13,
"turnover": 0.03826141,
"ytdPriceChangePercentage": 67.0818,
"volumeRank": 2,
"volumeMcRank": 2235,
"mcTotalNum": 9598,
"volumeTotalNum": 9598,
"volumeMcTotalNum": 9598,
"status": "",
"volume": 20682484655.138218,
"volumeChangePercentage24h": 48.7042
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/crypto/coins
requires authentication
Get a list of all crypto currencies
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/crypto/coins'
params = {
'page': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/crypto/coins';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'page' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/crypto/coins"
);
const params = {
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/crypto/coins?page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"page": "1",
"total": "10458"
},
"body": [
{
"id": 1,
"name": "Bitcoin",
"symbol": "BTC",
"slug": "bitcoin",
"cmcRank": 1,
"marketPairCount": 12000,
"circulatingSupply": 19842075,
"selfReportedCirculatingSupply": 0,
"totalSupply": 19842075,
"maxSupply": 21000000,
"ath": 109114.884834088,
"atl": 0.04864654,
"high24h": 88542.3946728374,
"low24h": 86359.4926625361,
"isActive": 1,
"lastUpdated": "2025-03-26T04:40:00.000Z",
"dateAdded": "2010-07-13T00:00:00.000Z",
"quotes": [
{
"name": "BTC",
"price": 1,
"volume24h": 331733.807450252,
"volume7d": 2522819.47458302,
"volume30d": 10317236.9067138,
"marketCap": 19842075,
"selfReportedMarketCap": 0,
"percentChange1h": 0,
"percentChange24h": 0,
"percentChange7d": 0,
"lastUpdated": "2025-03-26T04:40:00.000Z",
"percentChange30d": 0,
"percentChange60d": 0,
"percentChange90d": 0,
"fullyDilluttedMarketCap": 1835504320348.81,
"marketCapByTotalSupply": 19842075,
"dominance": 60.6059,
"turnover": 0.01671871,
"ytdPriceChangePercentage": -7.4294,
"percentChange1y": 23.80301685
},
{
"name": "ETH",
"price": 42.498197559466,
"volume24h": 14098088.8861746,
"volume7d": 107215280.437697,
"volume30d": 438463972.329336,
"marketCap": 843252423.339741,
"selfReportedMarketCap": 0,
"percentChange1h": -0.147407,
"percentChange24h": 0.497907,
"percentChange7d": -0.994794,
"lastUpdated": "2025-03-26T04:40:00.000Z",
"percentChange30d": 20.575073,
"percentChange60d": 34.083485,
"percentChange90d": 48.530835,
"fullyDilluttedMarketCap": 1835504320348.81,
"marketCapByTotalSupply": 843252423.339741,
"dominance": 60.6059,
"turnover": 0.01671871,
"ytdPriceChangePercentage": -7.4294,
"percentChange1y": 23.80301685
},
{
"name": "USD",
"price": 87404.9676356577,
"volume24h": 28995182703.8427,
"volume7d": 220506954526.536,
"volume30d": 901777757920.731,
"marketCap": 1734295923199.29,
"selfReportedMarketCap": 0,
"percentChange1h": 0.30272694,
"percentChange24h": 1.03877854,
"percentChange7d": 5.36278451,
"lastUpdated": "2025-03-26T04:40:00.000Z",
"percentChange30d": -8.15481455,
"percentChange60d": -16.57444939,
"percentChange90d": -11.19494517,
"fullyDilluttedMarketCap": 1835504320348.81,
"marketCapByTotalSupply": 1734295923199.29,
"dominance": 60.6059,
"turnover": 0.01671871,
"ytdPriceChangePercentage": -7.4294,
"percentChange1y": 23.80301685
}
],
"isAudited": false,
"auditInfoList": [],
"badges": [1]
},
{ ... }
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/crypto/modules
requires authentication
Get global metrics, crypto top gainers/losers, trends, new coins, etc...
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/crypto/modules'
params = {
'module': 'trending',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/crypto/modules';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'module' => 'trending',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/crypto/modules"
);
const params = {
"module": "trending",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/crypto/modules?module=trending" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"total": 10,
"module": "trendingList"
},
"body": [
{
"id": 24781,
"dataType": 2,
"name": "CyberConnect",
"symbol": "CYBER",
"rank": 378,
"status": "active",
"marketCap": 43825691.01,
"selfReportedMarketCap": 0,
"priceChange": {
"price": 3.9704376710966343,
"priceChange24h": -5.25190314,
"priceChange7d": 120.13555185,
"priceChange30d": 120.13555185,
"volume24h": 39253295.67980275,
"lastUpdate": "2023-08-17T17:31:00.000Z"
}
},
{ ... }
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.