在加密货币市场中,API是连接各种应用程式和服务的重要工具。CoinGeckoAPI和CoinMarketCapAPI是两个主要的加密货币数据提供商。不同于交易所提供的API更偏向于交易,CoinGecko和CoinMarketCap所能提供的数据和资讯更加全面和多样化,不仅可以用来量化交易,数据挖掘还可以进行横向比对,本文将以币圈数据集成的两大巨头为例,以Python作为基础语言进行入门讲解,并比较这两个API,以便更好地了解它们之间的差异和优缺点。
CoinGeckoAPI:
API文档
CoinGecko的API主要提供的数据包括即时和历史代币价格,交易所的交易量以及交易对,契机其他的各类数据。其API主要分为5种类型,每种类型对应不同的价格和品质,从回应时间,数据精度,数据深度,个性化定制等多个维度进行了分类,每月定制价格也从$100-$800不等,本文由于经费有限将使用入门的公开版本进行实操讲解。
https://www.coingecko.net/en/api/documentation
以上是CoinGeckoAPIV3版本的文档,主要集成了价量数据,背景资讯,交易所情况和新上线的NFT追踪功能等。
支持语言
CoinGecko现在支持市面上大量的主流语言的语言包括NodeJs,Go,.Net,Python,Java,Kotlin,GoogleSheets,Cryptosheets,PHP,WordPressPlugin。
如果使用免费版本不需要在CoinGecko上注册,可以直接调用项目方的库。
实战练习
在终端使用PIP进行Python库的安装:
Pipinstallpycoingecko
安装完成后可以使用pipshowpycoingecko来检查是否安装准确:这里我们可以看到这个库中使用的requests这个依赖,requests是python爬虫的重要组成,用户其实也可以自己用request在CoinGecko上进行资讯爬取,而API给了一个更简单直接的方式做到。
或者可以使用anaconda用户自选的环境进行手动添加,这里不多赘述。
引用刚刚所安装的库中的CoinGeckoAPI功能并通常以cg来备注这个依赖:
frompycoingeckoimportCoinGeckoAPI
cg=CoinGeckoAPI()
接下来就可以使用ping功能来检查API的状态:
当看到CoinGecko的回复tothemoon!后,确定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有更多的高阶用法,搭配不同的软体或者库可以达到多种用途,是大家工作学习不错的选择。
CoinMarketCapAPI
API文档
相对于Coingecko来说,CMC更有币安的偏向性,这也是被人诟病的一点,但是相对于Coingecko,CMC收取的费用较低,但是明显可以看到更多功能都放在收费计画上,开源免费版本的API提供的数据非常有限,且数据精度和数据量不能支持到学术或者商业用途。
https://pro.coinmarketcap.net/features/
支持语言
CMC支持的语言包括NodeJS,PHP,Python,Ruby,Objective-C,Java(Android),C#(.NET),cURL
实操练习
注册:想要想使用CMCAPIPRO必须获取APIKey,可以通过CMC官网注册并登录API,然后获取Key点击复制以备使用。
https://pro.coinmarketcap.net/account
CMC的API也可以通过2种方式访问,通过request或者官方库来获取。
首先通过pipinstallpython-coinmarketcap来进行安装。
这里我们以沙盒模式进行演示,只要定义cmc=CoinMarketCapAPI(空白)便默认进入沙盒模式,或者输入APIKey进入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会回复空投的时间、参与人数和获奖人数等数据:
CMCAPI的功能同样很齐全,包括交易所、代币资讯、量价资讯、链上资讯和定制化资讯等都可以获得,具体可以参考Pypi的文档:
https://pypi.org/project/python-coinmarketcap/
可以看到CMC更注重与开发者的体验感,而CoinGecko的优势在于数据的多样性和未来的布局,两者各有千秋,除了这个赛道外,用户还有更多的选择,比如blockchainwallet,Coinsfera等。但CMC和CoinGecko这两大龙头已占据了市场的大量资源和先发优势,也是认可度最高的两个项目,短时间内很难有后者能赶超,期待两者的后续发展能给数据市场带来更稳定、高效和优质的API。