{ "api_sources": { "market_prices": { "primary": [ { "name": "coingecko", "url": "https://api.coingecko.com/api/v3", "auth_required": false, "rate_limit": "50/min", "priority": 1, "timeout": 10 }, { "name": "binance_public", "url": "https://api.binance.com/api/v3", "auth_required": false, "rate_limit": "1200/min", "priority": 2, "timeout": 10 }, { "name": "coinpaprika", "url": "https://api.coinpaprika.com/v1", "auth_required": false, "rate_limit": "20000/month", "priority": 3, "timeout": 10 }, { "name": "coincap", "url": "https://api.coincap.io/v2", "auth_required": false, "rate_limit": "200/min", "priority": 4, "timeout": 10 }, { "name": "coinlore", "url": "https://api.coinlore.net/api", "auth_required": false, "rate_limit": "unlimited", "priority": 5, "timeout": 10 } ], "secondary": [ { "name": "coinmarketcap_primary_1", "url": "https://pro-api.coinmarketcap.com/v1", "auth_required": true, "api_key": "04cf4b5b-9868-465c-8ba0-9f2e78c92eb1", "rate_limit": "333/day", "priority": 6, "timeout": 15 }, { "name": "coinmarketcap_primary_2", "url": "https://pro-api.coinmarketcap.com/v1", "auth_required": true, "api_key": "b54bcf4d-1bca-4e8e-9a24-22ff2c3d462c", "rate_limit": "333/day", "priority": 7, "timeout": 15 }, { "name": "cryptocompare", "url": "https://min-api.cryptocompare.com/data", "auth_required": true, "api_key": "e79c8e6d4c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f", "rate_limit": "100000/month", "priority": 8, "timeout": 10 }, { "name": "messari", "url": "https://data.messari.io/api/v1", "auth_required": false, "rate_limit": "20/min", "priority": 9, "timeout": 10 }, { "name": "nomics", "url": "https://api.nomics.com/v1", "auth_required": false, "rate_limit": "unlimited", "priority": 10, "timeout": 10 }, { "name": "defillama_prices", "url": "https://coins.llama.fi", "auth_required": false, "rate_limit": "unlimited", "priority": 11, "timeout": 10 }, { "name": "coinstats_public", "url": "https://api.coinstats.app/public/v1", "auth_required": false, "rate_limit": "unlimited", "priority": 12, "timeout": 10 } ], "tertiary": [ { "name": "kaiko", "url": "https://us.market-api.kaiko.io/v2", "auth_required": false, "rate_limit": "limited", "priority": 13, "timeout": 10 }, { "name": "coindesk_price", "url": "https://api.coindesk.com/v2", "auth_required": false, "rate_limit": "unlimited", "priority": 14, "timeout": 10 }, { "name": "diadata", "url": "https://api.diadata.org/v1", "auth_required": false, "rate_limit": "unlimited", "priority": 15, "timeout": 10 }, { "name": "freecryptoapi", "url": "https://api.freecryptoapi.com", "auth_required": false, "rate_limit": "unlimited", "priority": 16, "timeout": 10 }, { "name": "cryptingup", "url": "https://api.cryptingup.com/api", "auth_required": false, "rate_limit": "unlimited", "priority": 17, "timeout": 10 }, { "name": "coinranking", "url": "https://api.coinranking.com/v2", "auth_required": false, "rate_limit": "unlimited", "priority": 18, "timeout": 10 } ] }, "ohlc_candlestick": { "primary": [ { "name": "binance_public", "url": "https://api.binance.com/api/v3/klines", "auth_required": false, "rate_limit": "1200/min", "priority": 1, "timeout": 15 }, { "name": "cryptocompare_market", "url": "https://min-api.cryptocompare.com/data/v2", "auth_required": false, "rate_limit": "100000/month", "priority": 2, "timeout": 15 }, { "name": "coinpaprika_market", "url": "https://api.coinpaprika.com/v1", "auth_required": false, "rate_limit": "20000/month", "priority": 3, "timeout": 15 }, { "name": "coincap_market", "url": "https://api.coincap.io/v2", "auth_required": false, "rate_limit": "200/min", "priority": 4, "timeout": 15 }, { "name": "coingecko_ohlc", "url": "https://api.coingecko.com/api/v3", "auth_required": false, "rate_limit": "50/min", "priority": 5, "timeout": 15 } ], "secondary": [ { "name": "kucoin_api", "url": "https://api.kucoin.com", "auth_required": false, "rate_limit": "unlimited", "priority": 6, "timeout": 15 }, { "name": "bybit_api", "url": "https://api.bybit.com", "auth_required": false, "rate_limit": "unlimited", "priority": 7, "timeout": 15 }, { "name": "okx_api", "url": "https://www.okx.com/api/v5", "auth_required": false, "rate_limit": "unlimited", "priority": 8, "timeout": 15 }, { "name": "kraken_api", "url": "https://api.kraken.com/0/public", "auth_required": false, "rate_limit": "unlimited", "priority": 9, "timeout": 15 }, { "name": "bitfinex_api", "url": "https://api-pub.bitfinex.com/v2", "auth_required": false, "rate_limit": "unlimited", "priority": 10, "timeout": 15 }, { "name": "gateio_api", "url": "https://api.gateio.ws/api/v4", "auth_required": false, "rate_limit": "unlimited", "priority": 11, "timeout": 15 }, { "name": "huobi_api", "url": "https://api.huobi.pro", "auth_required": false, "rate_limit": "unlimited", "priority": 12, "timeout": 15 } ], "huggingface_datasets": [ { "name": "hf_ds_linxy_crypto", "dataset_id": "linxy/crypto_ohlcv", "symbols": 26, "timeframes": 7, "total_files": 182, "priority": 13 }, { "name": "hf_ds_wf_btc", "dataset_id": "wf/bitcoin-historical", "symbols": 1, "priority": 14 }, { "name": "hf_ds_wf_eth", "dataset_id": "wf/ethereum-historical", "symbols": 1, "priority": 15 }, { "name": "hf_ds_wf_sol", "dataset_id": "wf/solana-historical", "symbols": 1, "priority": 16 }, { "name": "hf_ds_wf_xrp", "dataset_id": "wf/ripple-historical", "symbols": 1, "priority": 17 } ] }, "blockchain_explorer": { "ethereum": [ { "name": "etherscan_primary", "url": "https://api.etherscan.io/api", "auth_required": true, "api_key": "SZHYFZK2RR8H9TIMJBVW54V4H81K2Z2KR2", "rate_limit": "5/sec", "priority": 1, "timeout": 10 }, { "name": "etherscan_secondary", "url": "https://api.etherscan.io/api", "auth_required": true, "api_key": "T6IR8VJHX2NE6ZJW2S3FDVN1TYG4PYYI45", "rate_limit": "5/sec", "priority": 2, "timeout": 10 }, { "name": "blockchair_ethereum", "url": "https://api.blockchair.com/ethereum", "auth_required": false, "rate_limit": "30/min", "priority": 3, "timeout": 10 }, { "name": "blockscout_ethereum", "url": "https://eth.blockscout.com/api", "auth_required": false, "rate_limit": "unlimited", "priority": 4, "timeout": 10 }, { "name": "ethplorer", "url": "https://api.ethplorer.io", "auth_required": false, "rate_limit": "unlimited", "priority": 5, "timeout": 10 }, { "name": "etherchain", "url": "https://www.etherchain.org/api", "auth_required": false, "rate_limit": "unlimited", "priority": 6, "timeout": 10 }, { "name": "chainlens", "url": "https://api.chainlens.com", "auth_required": false, "rate_limit": "unlimited", "priority": 7, "timeout": 10 } ], "bsc": [ { "name": "bscscan_primary", "url": "https://api.bscscan.com/api", "auth_required": true, "api_key": "K62RKHGXTDCG53RU4MCG6XABIMJKTN19IT", "rate_limit": "5/sec", "priority": 1, "timeout": 10 }, { "name": "bitquery_bsc", "url": "https://graphql.bitquery.io", "auth_required": false, "rate_limit": "limited", "priority": 2, "timeout": 10 }, { "name": "ankr_multichain_bsc", "url": "https://rpc.ankr.com/multichain", "auth_required": false, "rate_limit": "unlimited", "priority": 3, "timeout": 10 }, { "name": "nodereal_bsc_explorer", "url": "https://bsc-mainnet.nodereal.io/v1", "auth_required": false, "rate_limit": "unlimited", "priority": 4, "timeout": 10 }, { "name": "bsctrace", "url": "https://api.bsctrace.com", "auth_required": false, "rate_limit": "unlimited", "priority": 5, "timeout": 10 }, { "name": "oneinch_bsc_api", "url": "https://api.1inch.io/v5.0/56", "auth_required": false, "rate_limit": "unlimited", "priority": 6, "timeout": 10 } ], "tron": [ { "name": "tronscan_primary", "url": "https://apilist.tronscanapi.com/api", "auth_required": true, "api_key": "7ae72726-bffe-4e74-9c33-97b761eeea21", "rate_limit": "unlimited", "priority": 1, "timeout": 10 }, { "name": "trongrid_explorer", "url": "https://api.trongrid.io", "auth_required": false, "rate_limit": "unlimited", "priority": 2, "timeout": 10 }, { "name": "blockchair_tron", "url": "https://api.blockchair.com/tron", "auth_required": false, "rate_limit": "30/min", "priority": 3, "timeout": 10 }, { "name": "tronscan_api_v2", "url": "https://api.tronscan.org/api", "auth_required": false, "rate_limit": "unlimited", "priority": 4, "timeout": 10 }, { "name": "getblock_tron", "url": "https://go.getblock.io/tron", "auth_required": false, "rate_limit": "unlimited", "priority": 5, "timeout": 10 } ] }, "news_feeds": { "api_sources": [ { "name": "newsapi_org", "url": "https://newsapi.org/v2", "auth_required": true, "api_key": "pub_346789abc123def456789ghi012345jkl", "rate_limit": "1000/day", "priority": 1, "timeout": 10 }, { "name": "cryptopanic", "url": "https://cryptopanic.com/api/v1", "auth_required": false, "rate_limit": "unlimited", "priority": 2, "timeout": 10 }, { "name": "cryptocontrol", "url": "https://cryptocontrol.io/api/v1/public", "auth_required": false, "rate_limit": "unlimited", "priority": 3, "timeout": 10 }, { "name": "coindesk_api", "url": "https://api.coindesk.com/v2", "auth_required": false, "rate_limit": "unlimited", "priority": 4, "timeout": 10 }, { "name": "cointelegraph_api", "url": "https://api.cointelegraph.com/api/v1", "auth_required": false, "rate_limit": "unlimited", "priority": 5, "timeout": 10 }, { "name": "cryptoslate", "url": "https://api.cryptoslate.com", "auth_required": false, "rate_limit": "unlimited", "priority": 6, "timeout": 10 }, { "name": "theblock_api", "url": "https://api.theblock.co/v1", "auth_required": false, "rate_limit": "unlimited", "priority": 7, "timeout": 10 }, { "name": "coinstats_news", "url": "https://api.coinstats.app/public/v1/news", "auth_required": false, "rate_limit": "unlimited", "priority": 8, "timeout": 10 } ], "rss_feeds": [ { "name": "rss_cointelegraph", "url": "https://cointelegraph.com/rss", "priority": 9 }, { "name": "rss_coindesk", "url": "https://www.coindesk.com/arc/outboundfeeds/rss/", "priority": 10 }, { "name": "rss_decrypt", "url": "https://decrypt.co/feed", "priority": 11 }, { "name": "rss_bitcoinmagazine", "url": "https://bitcoinmagazine.com/.rss/full/", "priority": 12 }, { "name": "rss_theblock", "url": "https://www.theblock.co/rss.xml", "priority": 13 }, { "name": "rss_cryptoslate", "url": "https://cryptoslate.com/feed/", "priority": 14 }, { "name": "rss_newsbtc", "url": "https://www.newsbtc.com/feed/", "priority": 15 } ] }, "sentiment_data": { "primary": [ { "name": "alternative_me_fng", "url": "https://api.alternative.me/fng/", "auth_required": false, "rate_limit": "unlimited", "priority": 1, "timeout": 10 }, { "name": "cfgi_v1", "url": "https://api.cfgi.io/v1/fear-greed", "auth_required": false, "rate_limit": "unlimited", "priority": 2, "timeout": 10 }, { "name": "cfgi_legacy", "url": "https://cfgi.io/api", "auth_required": false, "rate_limit": "unlimited", "priority": 3, "timeout": 10 }, { "name": "coingecko_community", "url": "https://api.coingecko.com/api/v3", "auth_required": false, "rate_limit": "50/min", "priority": 4, "timeout": 10 }, { "name": "messari_social", "url": "https://data.messari.io/api/v1", "auth_required": false, "rate_limit": "20/min", "priority": 5, "timeout": 10 } ], "social_analytics": [ { "name": "lunarcrush", "url": "https://api.lunarcrush.com/v2", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 6, "timeout": 10 }, { "name": "santiment", "url": "https://api.santiment.net/graphql", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 7, "timeout": 10 }, { "name": "thetie", "url": "https://api.thetie.io", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 8, "timeout": 10 }, { "name": "cryptoquant", "url": "https://api.cryptoquant.com/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 9, "timeout": 10 }, { "name": "glassnode_social", "url": "https://api.glassnode.com/v1/metrics/social", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 10, "timeout": 10 }, { "name": "augmento", "url": "https://api.augmento.ai/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 11, "timeout": 10 }, { "name": "reddit_cryptocurrency_new", "url": "https://www.reddit.com/r/CryptoCurrency/new.json", "auth_required": false, "rate_limit": "unlimited", "priority": 12, "timeout": 10 } ] }, "onchain_analytics": [ { "name": "glassnode_general", "url": "https://api.glassnode.com/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 1, "timeout": 10 }, { "name": "intotheblock", "url": "https://api.intotheblock.com/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 2, "timeout": 10 }, { "name": "nansen", "url": "https://api.nansen.ai/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 3, "timeout": 10 }, { "name": "thegraph_subgraphs", "url": "https://api.thegraph.com/subgraphs/name/", "auth_required": false, "rate_limit": "unlimited", "priority": 4, "timeout": 10 }, { "name": "dune", "url": "https://api.dune.com/api/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 5, "timeout": 10 }, { "name": "covalent", "url": "https://api.covalenthq.com/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 6, "timeout": 10 }, { "name": "moralis", "url": "https://deep-index.moralis.io/api/v2", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 7, "timeout": 10 }, { "name": "alchemy_nft_api", "url": "https://eth-mainnet.g.alchemy.com/v2", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 8, "timeout": 10 }, { "name": "transpose", "url": "https://api.transpose.io", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 9, "timeout": 10 }, { "name": "footprint_analytics", "url": "https://api.footprint.network", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 10, "timeout": 10 }, { "name": "bitquery_analytics", "url": "https://graphql.bitquery.io", "auth_required": false, "rate_limit": "limited", "priority": 11, "timeout": 10 }, { "name": "blockchair_analytics", "url": "https://api.blockchair.com", "auth_required": false, "rate_limit": "30/min", "priority": 12, "timeout": 10 }, { "name": "coinmetrics", "url": "https://api.coinmetrics.io/v4", "auth_required": false, "rate_limit": "limited", "priority": 13, "timeout": 10 } ], "whale_tracking": [ { "name": "whale_alert", "url": "https://api.whale-alert.io/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 1, "timeout": 10 }, { "name": "arkham", "url": "https://api.arkham.com/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 2, "timeout": 10 }, { "name": "clankapp", "url": "https://clankapp.com/api", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 3, "timeout": 10 }, { "name": "bitquery_whales", "url": "https://graphql.bitquery.io", "auth_required": false, "rate_limit": "limited", "priority": 4, "timeout": 10 }, { "name": "nansen_whales", "url": "https://api.nansen.ai/v1", "auth_required": true, "api_key": null, "rate_limit": "limited", "priority": 5, "timeout": 10 }, { "name": "dexcheck", "url": "https://api.dexcheck.io", "auth_required": false, "rate_limit": "unlimited", "priority": 6, "timeout": 10 }, { "name": "debank", "url": "https://api.debank.com", "auth_required": false, "rate_limit": "unlimited", "priority": 7, "timeout": 10 }, { "name": "zerion", "url": "https://api.zerion.io", "auth_required": false, "rate_limit": "unlimited", "priority": 8, "timeout": 10 }, { "name": "whalemap", "url": "https://whalemap.io/api", "auth_required": false, "rate_limit": "unlimited", "priority": 9, "timeout": 10 } ] }, "error_handling": { "451": { "description": "Geo-block detected", "actions": ["switch_proxy", "try_alternative_source", "use_different_exchange"] }, "429": { "description": "Rate limit exceeded", "actions": ["move_to_next_source", "mark_temporarily_unavailable", "exponential_backoff"] }, "401": { "description": "Authentication failed", "actions": ["try_backup_key", "switch_to_no_auth", "check_key_validity"] }, "403": { "description": "Forbidden", "actions": ["try_alternative_source", "check_permissions"] }, "404": { "description": "Not found", "actions": ["skip_to_next_source"] }, "500": { "description": "Internal server error", "actions": ["mark_source_down", "skip_to_next", "retry_after_5min"] }, "502": { "description": "Bad gateway", "actions": ["skip_to_next_source", "retry_after_2min"] }, "503": { "description": "Service unavailable", "actions": ["skip_to_next_source", "retry_after_5min"] }, "timeout": { "description": "Request timeout", "actions": ["retry_with_increased_timeout", "move_to_faster_source"] } }, "retry_strategy": { "max_retries": 3, "retryable_errors": [451, 429, 500, 502, 503, 504, "ETIMEDOUT", "ECONNRESET"], "non_retryable_errors": [400, 401, 403, 404], "backoff": { "type": "exponential", "initial_delay_ms": 1000, "max_delay_ms": 10000, "multiplier": 2 } }, "caching": { "market_prices": { "ttl_seconds": 60, "max_age_seconds": 300 }, "ohlc_candlestick": { "ttl_seconds": 300, "max_age_seconds": 3600 }, "blockchain_explorer": { "ttl_seconds": 120, "max_age_seconds": 600 }, "news_feeds": { "ttl_seconds": 600, "max_age_seconds": 3600 }, "sentiment_data": { "ttl_seconds": 300, "max_age_seconds": 1800 }, "onchain_analytics": { "ttl_seconds": 600, "max_age_seconds": 3600 }, "whale_tracking": { "ttl_seconds": 180, "max_age_seconds": 900 } }, "validation": { "cross_check": true, "acceptable_variance": 0.05, "minimum_sources_to_compare": 3, "confidence_threshold": 0.8 } }