{ "categories": { "market_data": { "name": "Market Data", "description": "Real-time and historical cryptocurrency market data", "icon": "📊" }, "news": { "name": "News & Media", "description": "Crypto news from multiple sources", "icon": "📰" }, "sentiment": { "name": "Sentiment Analysis", "description": "Market sentiment and Fear & Greed Index", "icon": "🎭" }, "analytics": { "name": "On-Chain Analytics", "description": "Blockchain data and whale tracking", "icon": "🔗" }, "defi": { "name": "DeFi Data", "description": "DeFi protocols, TVL, and yields", "icon": "🏦" }, "technical": { "name": "Technical Analysis", "description": "Technical indicators and trading signals", "icon": "📈" }, "ai_models": { "name": "AI & ML Models", "description": "AI-powered analysis and predictions", "icon": "🤖" }, "explorers": { "name": "Block Explorers", "description": "Blockchain explorer APIs", "icon": "🔍" } }, "services": { "market_data": { "providers": [ { "id": "coingecko", "name": "CoinGecko", "url": "https://api.coingecko.com/api/v3", "free": true, "requires_key": false, "rate_limit": "10-50 req/min", "endpoints": ["/simple/price", "/coins/markets", "/coins/{id}/market_chart"], "features": ["prices", "market_cap", "volume", "historical", "ohlcv"], "active": true }, { "id": "coinmarketcap", "name": "CoinMarketCap", "url": "https://pro-api.coinmarketcap.com/v1", "free": true, "requires_key": true, "key_env": "COINMARKETCAP_KEY_1", "rate_limit": "333 req/day", "endpoints": ["/cryptocurrency/quotes/latest", "/cryptocurrency/listings/latest"], "features": ["prices", "market_cap", "rankings"], "active": true }, { "id": "binance", "name": "Binance", "url": "https://api.binance.com/api/v3", "free": true, "requires_key": false, "rate_limit": "1200 req/min", "endpoints": ["/ticker/price", "/klines", "/ticker/24hr"], "features": ["prices", "ohlcv", "trades", "depth"], "active": true }, { "id": "cryptocompare", "name": "CryptoCompare", "url": "https://min-api.cryptocompare.com/data", "free": true, "requires_key": false, "rate_limit": "100K/month", "endpoints": ["/pricemulti", "/histoday", "/histohour"], "features": ["prices", "historical", "social"], "active": true }, { "id": "coincap", "name": "CoinCap", "url": "https://api.coincap.io/v2", "free": true, "requires_key": false, "rate_limit": "200 req/min", "endpoints": ["/assets", "/rates", "/candles"], "features": ["prices", "history", "exchanges"], "active": true }, { "id": "coinpaprika", "name": "CoinPaprika", "url": "https://api.coinpaprika.com/v1", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": ["/tickers", "/coins", "/ohlcv"], "features": ["prices", "ohlcv", "exchanges"], "active": true }, { "id": "messari", "name": "Messari", "url": "https://data.messari.io/api/v1", "free": true, "requires_key": false, "rate_limit": "20 req/min", "endpoints": ["/assets", "/assets/{symbol}/metrics"], "features": ["prices", "metrics", "profiles"], "active": true }, { "id": "coinlore", "name": "CoinLore", "url": "https://api.coinlore.net/api", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": ["/tickers/", "/global/"], "features": ["prices", "global_stats"], "active": true } ], "collection_interval": "15m", "realtime_supported": true }, "news": { "providers": [ { "id": "cryptocompare_news", "name": "CryptoCompare News", "url": "https://min-api.cryptocompare.com/data/v2/news/", "free": true, "requires_key": false, "rate_limit": "100K/month", "endpoints": ["?lang=EN", "?categories=BTC"], "features": ["news", "categories", "sources"], "active": true }, { "id": "newsapi", "name": "NewsAPI", "url": "https://newsapi.org/v2", "free": true, "requires_key": true, "key_env": "NEWSAPI_KEY", "rate_limit": "100 req/day", "endpoints": ["/everything", "/top-headlines"], "features": ["news", "search", "sources"], "active": true }, { "id": "cryptopanic", "name": "CryptoPanic", "url": "https://cryptopanic.com/api/v1/posts/", "free": true, "requires_key": true, "key_env": "CRYPTOPANIC_KEY", "rate_limit": "500 req/day", "endpoints": ["?auth_token={key}", "?filter=hot"], "features": ["news", "sentiment_votes", "trending"], "active": true }, { "id": "bitcoin_magazine_rss", "name": "Bitcoin Magazine", "url": "https://bitcoinmagazine.com/feed", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": [], "features": ["rss", "articles"], "active": true }, { "id": "decrypt_rss", "name": "Decrypt", "url": "https://decrypt.co/feed", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": [], "features": ["rss", "articles", "web3"], "active": true }, { "id": "cryptoslate_rss", "name": "CryptoSlate", "url": "https://cryptoslate.com/feed/", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": [], "features": ["rss", "articles", "analysis"], "active": true }, { "id": "cointelegraph_rss", "name": "CoinTelegraph", "url": "https://cointelegraph.com/rss", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": [], "features": ["rss", "articles"], "active": true }, { "id": "coindesk_rss", "name": "CoinDesk", "url": "https://www.coindesk.com/arc/outboundfeeds/rss/", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": [], "features": ["rss", "articles"], "active": true }, { "id": "theblock_rss", "name": "The Block", "url": "https://www.theblock.co/rss.xml", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": [], "features": ["rss", "research"], "active": true } ], "collection_interval": "15m", "realtime_supported": false }, "sentiment": { "providers": [ { "id": "fear_greed_index", "name": "Fear & Greed Index", "url": "https://api.alternative.me/fng/", "free": true, "requires_key": false, "rate_limit": "unlimited", "endpoints": ["?limit=1", "?limit=30"], "features": ["fear_greed", "historical"], "active": true }, { "id": "lunarcrush", "name": "LunarCrush", "url": "https://lunarcrush.com/api", "free": true, "requires_key": true, "key_env": "LUNARCRUSH_KEY", "rate_limit": "50 req/day", "endpoints": [], "features": ["social_volume", "sentiment", "influencers"], "active": true }, { "id": "santiment", "name": "Santiment", "url": "https://api.santiment.net/graphql", "free": true, "requires_key": true, "key_env": "SANTIMENT_KEY", "rate_limit": "varies", "endpoints": [], "features": ["onchain", "social", "development"], "active": true }, { "id": "augmento", "name": "Augmento", "url": "https://api.augmento.ai/v0.1", "free": true, "requires_key": false, "rate_limit": "100 req/day", "endpoints": [], "features": ["sentiment_topics", "social_trends"], "active": true } ], "collection_interval": "15m", "realtime_supported": true }, "analytics": { "providers": [ { "id": "whale_alert", "name": "Whale Alert", "url": "https://api.whale-alert.io/v1", "free": true, "requires_key": true, "key_env": "WHALE_ALERT_KEY", "rate_limit": "10 req/min", "endpoints": ["/transactions"], "features": ["whale_transactions", "alerts"], "active": true }, { "id": "blockchair", "name": "Blockchair", "url": "https://api.blockchair.com", "free": true, "requires_key": false, "rate_limit": "30 req/min", "endpoints": ["/bitcoin/stats", "/ethereum/stats"], "features": ["blockchain_stats", "addresses"], "active": true }, { "id": "glassnode", "name": "Glassnode", "url": "https://api.glassnode.com/v1/metrics", "free": true, "requires_key": true, "key_env": "GLASSNODE_KEY", "rate_limit": "varies", "endpoints": [], "features": ["onchain_metrics", "sopr", "nupl"], "active": true }, { "id": "cryptoquant", "name": "CryptoQuant", "url": "https://api.cryptoquant.com/v1", "free": true, "requires_key": true, "key_env": "CRYPTOQUANT_KEY", "rate_limit": "100 req/day", "endpoints": [], "features": ["exchange_flows", "miner_data"], "active": true } ], "collection_interval": "30m", "realtime_supported": false }, "defi": { "providers": [ { "id": "defillama", "name": "DefiLlama", "url": "https://api.llama.fi", "free": true, "requires_key": false, "rate_limit": "300 req/min", "endpoints": ["/protocols", "/tvl", "/chains", "/yields"], "features": ["tvl", "protocols", "yields", "stablecoins"], "active": true }, { "id": "1inch", "name": "1inch", "url": "https://api.1inch.io/v4.0", "free": true, "requires_key": false, "rate_limit": "varies", "endpoints": ["/1/quote", "/1/swap"], "features": ["dex_aggregator", "quotes", "swap"], "active": true }, { "id": "uniswap_subgraph", "name": "Uniswap Subgraph", "url": "https://api.thegraph.com/subgraphs/name/uniswap", "free": true, "requires_key": false, "rate_limit": "varies", "endpoints": [], "features": ["pairs", "swaps", "liquidity"], "active": true } ], "collection_interval": "15m", "realtime_supported": false }, "technical": { "providers": [ { "id": "taapi", "name": "TAAPI.IO", "url": "https://api.taapi.io", "free": true, "requires_key": true, "key_env": "TAAPI_KEY", "rate_limit": "50 req/day", "endpoints": ["/rsi", "/macd", "/ema"], "features": ["indicators", "rsi", "macd", "bollinger"], "active": true } ], "collection_interval": "15m", "realtime_supported": true }, "ai_models": { "providers": [ { "id": "huggingface", "name": "HuggingFace Inference", "url": "https://api-inference.huggingface.co/models", "free": true, "requires_key": true, "key_env": "HF_TOKEN", "rate_limit": "varies", "endpoints": ["/ElKulako/cryptobert", "/ProsusAI/finbert"], "features": ["sentiment_analysis", "text_generation", "classification"], "active": true } ], "collection_interval": "on_demand", "realtime_supported": true }, "explorers": { "providers": [ { "id": "etherscan", "name": "Etherscan", "url": "https://api.etherscan.io/api", "free": true, "requires_key": true, "key_env": "ETHERSCAN_KEY", "rate_limit": "5 req/sec", "endpoints": ["?module=account&action=balance", "?module=gastracker"], "features": ["balances", "transactions", "gas"], "active": true }, { "id": "bscscan", "name": "BscScan", "url": "https://api.bscscan.com/api", "free": true, "requires_key": true, "key_env": "BSCSCAN_KEY", "rate_limit": "5 req/sec", "endpoints": ["?module=account&action=balance"], "features": ["balances", "transactions"], "active": true }, { "id": "tronscan", "name": "TronScan", "url": "https://apilist.tronscanapi.com/api", "free": true, "requires_key": true, "key_env": "TRONSCAN_KEY", "rate_limit": "varies", "endpoints": ["/account"], "features": ["balances", "transactions"], "active": true }, { "id": "ethplorer", "name": "Ethplorer", "url": "https://api.ethplorer.io", "free": true, "requires_key": false, "rate_limit": "varies", "endpoints": ["/getAddressInfo"], "features": ["tokens", "balances"], "active": true } ], "collection_interval": "on_demand", "realtime_supported": true } }, "api_endpoints": { "unified_service": { "base": "/api/service", "endpoints": [ {"method": "GET", "path": "/rate", "params": "?pair=BTC/USDT", "description": "Get exchange rate"}, {"method": "GET", "path": "/rate/batch", "params": "?pairs=BTC/USDT,ETH/USDT", "description": "Get multiple rates"}, {"method": "GET", "path": "/market-status", "params": "", "description": "Market overview"}, {"method": "GET", "path": "/top", "params": "?n=10", "description": "Top coins"}, {"method": "GET", "path": "/sentiment", "params": "?symbol=BTC", "description": "Get sentiment"}, {"method": "GET", "path": "/whales", "params": "?chain=ethereum&min_amount_usd=1000000", "description": "Whale transactions"}, {"method": "GET", "path": "/onchain", "params": "?address=0x...&chain=ethereum", "description": "On-chain data"}, {"method": "POST", "path": "/query", "params": "", "description": "Universal query endpoint"} ] }, "market": { "base": "/api", "endpoints": [ {"method": "GET", "path": "/market", "params": "?limit=100", "description": "Market data"}, {"method": "GET", "path": "/ohlcv", "params": "?symbol=BTC&timeframe=1h&limit=500", "description": "OHLCV data"}, {"method": "GET", "path": "/klines", "params": "?symbol=BTCUSDT&interval=1h", "description": "Klines (alias)"}, {"method": "GET", "path": "/historical", "params": "?symbol=BTC&days=30", "description": "Historical data"}, {"method": "GET", "path": "/coins/top", "params": "?limit=50", "description": "Top coins"} ] }, "news": { "base": "/api", "endpoints": [ {"method": "GET", "path": "/news", "params": "?limit=20", "description": "Latest news"}, {"method": "GET", "path": "/news/latest", "params": "?symbol=BTC&limit=10", "description": "Latest by symbol"} ] }, "sentiment": { "base": "/api", "endpoints": [ {"method": "GET", "path": "/sentiment/global", "params": "", "description": "Global sentiment"}, {"method": "GET", "path": "/fear-greed", "params": "", "description": "Fear & Greed Index"}, {"method": "POST", "path": "/sentiment/analyze", "params": "", "description": "Analyze text sentiment"} ] }, "technical": { "base": "/api/technical", "endpoints": [ {"method": "POST", "path": "/ta-quick", "params": "", "description": "Quick technical analysis"}, {"method": "POST", "path": "/fa-eval", "params": "", "description": "Fundamental evaluation"}, {"method": "POST", "path": "/onchain-health", "params": "", "description": "On-chain health"}, {"method": "POST", "path": "/risk-assessment", "params": "", "description": "Risk assessment"}, {"method": "POST", "path": "/comprehensive", "params": "", "description": "Comprehensive analysis"} ] }, "ai_models": { "base": "/api", "endpoints": [ {"method": "GET", "path": "/models/list", "params": "", "description": "List all models"}, {"method": "GET", "path": "/models/status", "params": "", "description": "Models status"}, {"method": "GET", "path": "/models/health", "params": "", "description": "Models health"}, {"method": "POST", "path": "/models/reinit-all", "params": "", "description": "Reinitialize models"}, {"method": "POST", "path": "/ai/decision", "params": "", "description": "AI trading decision"} ] }, "resources": { "base": "/api", "endpoints": [ {"method": "GET", "path": "/resources/stats", "params": "", "description": "Resources statistics"}, {"method": "GET", "path": "/resources/apis", "params": "", "description": "All APIs list"}, {"method": "GET", "path": "/resources/summary", "params": "", "description": "Resources summary"}, {"method": "GET", "path": "/providers", "params": "", "description": "Data providers"}, {"method": "GET", "path": "/status", "params": "", "description": "System status"}, {"method": "GET", "path": "/health", "params": "", "description": "Health check"} ] }, "websocket": { "base": "/ws", "endpoints": [ {"method": "WS", "path": "/master", "params": "", "description": "Master WebSocket (all services)"}, {"method": "WS", "path": "/live", "params": "", "description": "Live market data"}, {"method": "WS", "path": "/ai/data", "params": "", "description": "AI model updates"}, {"method": "WS", "path": "/data", "params": "", "description": "Data collection stream"}, {"method": "WS", "path": "/monitoring", "params": "", "description": "System monitoring"} ] } }, "collection_config": { "intervals": { "market": {"minutes": 15, "description": "Market data collection every 15 minutes"}, "news": {"minutes": 15, "description": "News collection every 15 minutes"}, "sentiment": {"minutes": 15, "description": "Sentiment collection every 15 minutes"}, "onchain": {"minutes": 30, "description": "On-chain data every 30 minutes"}, "defi": {"minutes": 15, "description": "DeFi data every 15 minutes"}, "historical": {"minutes": 30, "description": "Historical data every 30 minutes"} }, "realtime": { "description": "For client-side requests, data is fetched immediately from source", "sources": ["binance", "coingecko", "coincap", "fear_greed_index"], "cache_ttl_seconds": 60 } }, "statistics": { "total_providers": 40, "active_providers": 38, "free_providers": 35, "categories_count": 8, "total_endpoints": 200, "api_keys_configured": 11 } }