Reverse-engineered, documented private API from Crypto Pro iOS/macOS app.
Public endpoints, no authentication required (just a static int k query parameter).
Provides reference data for all assets, exchanges, and client configuration.
This is the lookup table to convert between asset IDs, symbols, and names.
Should be cached locally as it rarely changes.
curl "https://cdn.cryptopro.app/data/dictionary.json"Sample response:
{
"a": [
[6, "BTC", "Bitcoin", 3, "f09428"],
[7, "ETH", "Ethereum", 3, "797faf"],
[8, "XRP", "XRP", 3, ""],
...
[1360, "TRX", "TRON", 3, "ff503d"],
[3003, "BSV", "Bitcoin SV", 3, "ebb604"],
...
],
"e": [
[1, "Yahoo Finance", 1, 3600, "yahoo.com"],
[2, "All Cryptos", 2, 60, "coinmarketcap.com"],
[3, "Binance", 3, 300, "binance.com"],
...
],
"l": [...],
"o": [
[0, "BTT:3121,CDT:1984,TRON:1360,TRX:1360,IOTA:13,HOT:2176,BLZ:1916,BAT:44,LEO:3359,BCHSV:3003,BCHABC:965,ONE:3390,KNC:1348,WAN:2059,VET:1259,ATOM:3199,ORS:2347,DOT:12008,UNI:12777,BEL:12742,XVS:13009,LIT:14439,GRT:13918,LUNA:8989,COMP:11750,CLV:16189"]
],
"u": [...],
"w": [...]
}Response properties:
Each asset has 5 values:
[0]- Asset ID (integer)[1]- Symbol (string)[2]- Full name (string)[3]- Asset type:1= Fiat,2= Metal,3= Crypto[4]- Hex color for UI (string, can be empty)
Each exchange has 5 values:
[0]- Exchange ID (integer)[1]- Display name (string)[2]- Exchange type:1= Fiat aggregator,2= Crypto aggregator,3= Spot exchange[3]- TTL/cache duration in seconds (integer)[4]- Data source domain (string)
l- UI presets for watch lists (?) - uncertaino- Symbol aliases mapping alternative symbols to asset IDsu- Feature flags for clientw- Popular assets list (?) - uncertain
Get current market data for specific cryptocurrencies by their asset IDs.
This is the most efficient way to track a portfolio or watchlist, returning only the data queried in a compact format.
curl "https://api.cryptopro.app/v4/markets.php?i=6,7,8&k=17231040"Response - 5 values per asset:
{
"d": [
[6, 107207, 0.0088, 299132, "1210112225559855668976666"], // BTC
[7, 2423.74, -0.0119, 6485330, "9875467423334400224541233"], // ETH
[8, 2.18, -0.002, 1010840000, "2002002429700242002"] // XRP
]
}[0]- Asset ID (per dictionary.json)[1]- Current price in USD (float)[2]- 24h change as decimal (0.0088= +0.88%)[3]- 24h volume in asset units (multiply by[1]to get volume in USD)[4]- Sparkline: string of digits 0-9 representing price trend
Get comprehensive market data from a specific exchange/aggregator.
Exchange ID (e) 1 uses Yahoo Finance (per dictionary.json).
Returns simplified data with 5 values per currency pair.
curl "https://api.cryptopro.app/v4/markets.php?e=1&k=17231040"Response - 5 values per currency:
{
"d": [
[1, 1, 0, 0, "0", 1, 1], // USD
[2, 0.6532, -0.0015, 0, "56933550024555555555555", 2, 1], // AED
[3, 1.17192, 0.0008, 0, "232963540013444444444444", 3, 1], // EUR
...
]
}[0]- Provider ID (Yahoo's internal ID) (?) - uncertain[1]- Exchange rate to USD (float)[2]- 24h change as decimal (-0.0015= -0.15%)[3]- 24h volume (always0for fiat)[4]- Sparkline (string of digits 0-9)[5]- Asset ID (perdictionary.json)[6]- Quote currency ID (1= USD)
Note: Asset ID 1 is USD itself, hence rate is always 1.
Exchange ID (e) 2 uses CoinMarketCap (per dictionary.json).
Returns extended information including market cap, supply data, and global market statistics.
Default returns ~17,000 cryptos; use l parameter to limit results.
curl "https://api.cryptopro.app/v4/markets.php?e=2&k=17231040"Response - 10 values per asset + i global stats object:
{
"d": [
[6, 108110, 0.0140035, 298501, "1011222555985566897666899", 6, 1, 19883500, 19883500, 21000000], // BTC
[7, 2507.94, 0.0209144, 7017060, "4334431222330011333112599", 7, 1, 120718000, 120718000, 0], // ETH
[8, 2.21, 0.0100393, 1127880000, "200242970024200244", 8, 1, 59005500000, 99986000000, 100000000000], // XRP
...
],
"i": {
"b": 0.626195,
"g": 0.0086846,
"m": 3405600000000,
"v": 96316300000
}
}
[0]- Provider ID (CoinMarketCap's internal ID) (?) - uncertain[1]- Price in USD (float)[2]- 24h change as decimal (0.0088= +0.88%)[3]- 24h volume in asset units (multiply by[1]to get volume in the quote currency)[4]- Sparkline (string of digits 0-9)[5]- Asset ID (perdictionary.json)[6]- Quote currency ID (1= USD)[7]- Circulating supply (0= unknown)[8]- Total supply (0= unknown)[9]- Max supply (0= unlimited, e.g. ETH)
b- Bitcoin dominance (0.626195= 62.62%)g- Global market 24h change (0.0086846= +0.87%)m- Total crypto market cap in USDv- Total 24h volume in USD
There are also a few more endpoints (such as
graph.phpwith sparklines) which are not (yet) documented here. I however believe the most useful when it comes to pure market data is all here.