買幣
行情
幣幣
合約
金融
活動
更多
新用户专区
登錄
CoinEx研究院

CoinGecko API VS CoinMarketCap API

2023-04-23 08:36:52


引言

在加密貨幣市場中,API是連接各種應用程式和服務的重要工具。CoinGecko API和CoinMarketCap API是兩個主要的加密貨幣數據提供商。不同於交易所提供的API更偏向於交易,CoinGecko 和 CoinMarketCap 所能提供的數據和資訊更加全面和多樣化,不僅可以用來量化交易,數據挖掘還可以進行橫向比對,本文將以幣圈數據集成的兩大巨頭為例,以Python作為基礎語言進行入門講解,並比較這兩個API,以便更好地瞭解它們之間的差異和優缺點。

 


CoinGecko API:

API文檔

CoinGecko 的API主要提供的數據包括即時和歷史代幣價格,交易所的交易量以及交易對,契機其他的各類數據。其API主要分為5種類型,每種類型對應不同的價格和品質,從回應時間,數據精度,數據深度,個性化定制等多個維度進行了分類,每月定制價格也從$100-$800不等,本文由於經費有限將使用入門的公開版本進行實操講解。

https://www.coingecko.com/en/api/documentation

以上是CoinGecko API V3版本的文檔,主要集成了價量數據,背景資訊,交易所情況和新上線的NFT追蹤功能等。


支持語言

CoinGecko 現在支持市面上大量的主流語言的語言包括NodeJs, Go, .Net, Python, Java, Kotlin, Google Sheets, Cryptosheets, PHP, WordPress Plugin。

如果使用免費版本不需要在CoinGecko 上註冊,可以直接調用專案方的庫。


實戰練習

在終端使用PIP 進行Python庫的安裝:

Pip install pycoingecko

安裝完成後可以使用 pip show pycoingecko 來檢查是否安裝準確:這裏我們可以看到這個庫中使用的requests 這個依賴,requests 是python爬蟲的重要組成,用戶其實也可以自己用request 在CoinGecko 上進行資訊爬取,而API給了一個更簡單直接的方式做到。


或者可以使用anaconda用戶自選的環境進行手動添加,這裏不多贅述。

 

引用剛剛所安裝的庫中的 CoinGecko API功能並通常以cg 來備註這個依賴:

from pycoingecko import CoinGeckoAPI

cg = CoinGeckoAPI()

 

接下來就可以使用ping 功能來檢查API的狀態:


當看到CoinGecko 的回復to the moon ! 後,確定API沒有問題,接下來就可以嘗試最簡單的價格獲取了,這裏以ETH 為例:

價格獲取功能:需要2個必要的變數:代幣名稱和支持的交易對,可以分別通過

cg.get_coins_list()

cg.get_supported_vs_currencies()


來運行程式獲得此刻以太坊以美元計價的價值。

cg.get_price(ids='ethereum', vs_currencies='usd')


也可以輸入多個id來獲取多個代幣的價格


交易量變化數據:除了價格以外,get_price功能還可以獲得市值、24小時交易量、24小時變化量以及時間戳功能。

cg.get_price(ids='ethereum',vs_currencies='usd',include_market_cap='true',include_24hr_vol='true',include_24hr_change='true',include_last_updated_at='true')


歷史數據:除了即時數據外,還可以用History 功能獲取歷史數據:

cg.get_coin_history_by_id(id='ethereum',date='01-01-2023', localization='false')


不僅提供價格數據還可以獲得社區數據,開發者數據,公開的流覽數據等。

如果需要獲得24小時的歷史數據的話可以使用:

cg.get_coin_market_chart_by_id(id='etherum',vs_currency='usd',days='3')

本文對CoinGecko 的簡單用法就講到這裏,當然這個API 有更多的高階用法,搭配不同的軟體或者庫可以達到多種用途,是大家工作學習不錯的選擇。

 CoinMarketCap API

API文檔

相對於Coingecko 來說,CMC更有幣安的偏向性,這也是被人詬病的一點,但是相對於Coingecko ,CMC 收取的費用較低,但是明顯可以看到更多功能都放在收費計畫上,開源免費版本的API 提供的數據非常有限,且數據精度和數據量不能支持到學術或者商業用途。

https://pro.coinmarketcap.com/features/

支持語言

CMC支持的語言包括NodeJS,PHP,Python,Ruby,Objective-C,Java(Android),C#(.NET),cURL

實操練習

註冊:想要想使用CMC API PRO 必須獲取API Key,可以通過CMC 官網註冊並登錄API ,然後獲取Key 點擊複製以備使用。

https://pro.coinmarketcap.com/account


CMC的API 也可以通過2種方式訪問,通過request 或者官方庫來獲取。

首先通過 pip install python-coinmarketcap 來進行安裝。

這裏我們以沙盒模式進行演示,只要定義cmc=CoinMarketCapAPI(空白)便默認進入沙盒模式,或者輸入API Key 進入 Pro 模式。

資產獲取方法:首先導入CMC的庫並使用API中的cryptocurrency_info()功能來獲取資訊,這裏以SOLANA為例:

這裏返回的值可以是字典、整數型、字串以及波爾型,分別對應各種功能,這種設計是開發者的福音。


代幣資訊獲取:我們還可以使用_listings_latest() 來獲取最新的代幣資訊:

我們可以看到回復的是一個字典型,內容包括ID、名稱、代號、CMC排名、代幣發行量、總量、加入日期和更新日期等,我們可以通過指定一個symbol 或者直接slug 來查詢某一個代幣的即時資訊。


獲得量價的方式為使用API的cryptocurrency_ohlcv_latest()功能,這裏必須指定ID或者symbol,可以使用convert_id 來指定交易對,系統默認為USD:


其他功能:有趣的是CMC還提供了Airdrop的查詢功能,我們同樣以SOL 為例,值得注意的是這裏必須輸入變數ID,API會回復空投的時間、參與人數和獲獎人數等數據:


CMC API 的功能同樣很齊全,包括交易所、代幣資訊、量價資訊、鏈上資訊和定制化資訊等都可以獲得,具體可以參考Pypi的文檔:

https://pypi.org/project/python-coinmarketcap/

以下就幾個維度對兩個產品的API進行對比,滿分為5分:


可以看到CMC 更注重與開發者的體驗感,而CoinGecko 的優勢在於數據的多樣性和未來的佈局,兩者各有千秋,除了這個賽道外,用戶還有更多的選擇,比如blockchain wallet, Coinsfera 等。但CMC和CoinGecko這兩大龍頭已佔據了市場的大量資源和先發優勢,也是認可度最高的兩個專案,短時間內很難有後者能趕超,期待兩者的後續發展能給數據市場帶來更穩定、高效和優質的API。

 

上一篇
為什麼Web 3需要數字身份?
下一篇
CoinEx科普|冉冉升起的新星Kaspa