Skip to content

Instantly share code, notes, and snippets.

@Laiteux
Last active June 30, 2025 07:21
Show Gist options
  • Select an option

  • Save Laiteux/fc01149cafb4f10fcea70f53e435c30f to your computer and use it in GitHub Desktop.

Select an option

Save Laiteux/fc01149cafb4f10fcea70f53e435c30f to your computer and use it in GitHub Desktop.
Reverse-engineered, documented market data private API from Crypto Pro iOS/macOS app.

Crypto Pro App API

Reverse-engineered API from Crypto Pro iOS/macOS app.

Public endpoints, no authentication required.

Dictionary Endpoint

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:

a - Assets array

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)

e - Exchanges array

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)

Other arrays:

  • l - UI presets for watch lists
  • o - Symbol aliases mapping alternative symbols to asset IDs
  • u - Feature flags for client
  • w - Popular assets list (?)

Query Specific Assets

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 (matches 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

Query All Market Data

Get comprehensive market data from a specific exchange/aggregator.

Fiat Market Data

Exchange ID (e) 1 uses Yahoo Finance for fiat currency exchange rates.

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) (?)
  • [1] - Exchange rate to USD (float)
  • [2] - 24h change as decimal (-0.0015 = -0.15%)
  • [3] - Volume (always 0 for fiat)
  • [4] - Sparkline (string of digits 0-9)
  • [5] - Asset ID (links to dictionary.json)
  • [6] - Quote currency ID (1 = USD)

Note: Asset ID 1 is USD itself, hence rate is always 1.

Crypto Market Data

Exchange ID (e) 2 uses CoinMarketCap (per dictionary.json's domain field).

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
  }
}

Array values:

  • [0] - Provider ID (CoinMarketCap's internal ID) (?)
  • [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 (links to dictionary.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)

Global stats object i:

  • b - Bitcoin dominance (0.626195 = 62.62%)
  • g - Global market 24h change (0.0086846 = +0.87%)
  • m - Total crypto market cap in USD
  • v - Total 24h volume in USD
@Laiteux
Copy link
Author

Laiteux commented Jun 28, 2025

There are also a few more endpoints (such as graph.php with sparklines) which are not (yet) documented here. I however believe the most useful when it comes to pure market data is all here.

@Laiteux
Copy link
Author

Laiteux commented Jun 30, 2025

Reminder to sleepy selves: market cap = circulating supply * price (since it is not directly included in API)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment