如何按市值获取 coingecko API 的前 300 个硬币的列表?

sat*_*urn 6 api json bitcoin cryptocurrency

如果我请求coingecko使用 with获取完整的硬币列表

https://api.coingecko.com/api/v3/coins/list
Run Code Online (Sandbox Code Playgroud)

并获取'id'进入条目的每个硬币的 ID 。

然后我可以循环使用所有硬币 ID

https://api.coingecko.com/api/v3/simple/price?ids=<coin>&vs_currencies=usd
Run Code Online (Sandbox Code Playgroud)

(其中<coin>应由来自完整列表的 id 替换)(例如https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd获取比特币价格),然后按市值重新排序。

这有效,但问题是有很多请求,这需要很长时间(至少几个小时)。

是否有可能立即通过市值获得前 300 个硬币的 ID?

Yur*_*urg 5

Coingecco API 请求markets返回硬币价格、市值和市值排名等信息。您可以按市值排名对其进行排序,只需取 JSON 数组的第 300 个元素。

https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc
Run Code Online (Sandbox Code Playgroud)

响应如下:

[
  {
    "id": "bitcoin",
    "symbol": "btc",
    "name": "Bitcoin",
    "image": "https://assets.coingecko.com/coins/images/1/large/bitcoin.png?1547033579",
    "current_price": 9664.88,
    "market_cap": 178353923560,
    "market_cap_rank": 1,
    ...
    "last_updated": "2020-07-26T05:05:03.478Z"
  },
  {
    "id": "ethereum",
    "symbol": "eth",
    "name": "Ethereum",
    "image": "https://assets.coingecko.com/coins/images/279/large/ethereum.png?1595348880",
    "current_price": 302.53,
    "market_cap": 33895800150,
    "market_cap_rank": 2,
...
    },
Run Code Online (Sandbox Code Playgroud)

UPD:要获得 300 个结果,请使用以下请求:

https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=3
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢您,这正是我正在寻找的请求!但这里的问题是这个请求只给出了 100 个第一个硬币。你知道如何用 100 多个硬币获得完全相同的结果吗? (2认同)