引言
在加密货币市场中,API是连接各种应用程序和服务的重要工具。CoinGecko API和CoinMarketCap API是两个主要的加密货币数据提供商。不同于交易所提供的API更偏向于交易,CoinGecko 和 CoinMarketCap 所能提供的数据和信息更加全面和多样化,不仅可以用来量化交易,数据挖掘还可以进行横向比对,本文将以币圈数据集成的两大巨头为例,以Python作为基础语言进行入门讲解,并比较这两个API,以便更好地了解它们之间的差异和优缺点。
CoinGecko API:
API文档
CoinGecko 的API主要提供的数据包括实时和历史代币价格,交易所的交易量以及交易对,契机其他的各类数据。其API主要分为5种类型,每种类型对应不同的价格和质量,从回应时间,数据精度,数据深度,个性化定制等多个维度进行了分类,每月定制价格也从$100-$800不等,本文由于经费有限将使用入门的公开版本进行实操讲解。
以上是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 提供的数据非常有限,且数据精度和数据量不能支持到学术或者商业用途。
支持语言
CMC支持的语言包括NodeJS,PHP,Python,Ruby,Objective-C,Java(Android),C#(.NET),cURL
实操练习
注册:想要想使用CMC API PRO 必须获取API Key,可以通过CMC 官网注册并登录API ,然后获取Key 点击复制以备使用。
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的文档:
以下就几个维度对两个产品的API进行对比,满分为5分:
可以看到CMC 更注重与开发者的体验感,而CoinGecko 的优势在于数据的多样性和未来的布局,两者各有千秋,除了这个赛道外,用户还有更多的选择,比如blockchain wallet, Coinsfera 等。但CMC和CoinGecko这两大龙头已占据了市场的大量资源和先发优势,也是认可度最高的两个项目,短时间内很难有后者能赶超,期待两者的后续发展能给数据市场带来更稳定、高效和优质的API。