cryptoCMD icon indicating copy to clipboard operation
cryptoCMD copied to clipboard

Data download is completely broken by CMC's v1 API Deprecation

Open ddm-j opened this issue 1 year ago • 6 comments

This is a(n):

  • [ ] New feature
  • [ ] Update to an existing feature
  • [x] Error
  • [ ] Proposal to the Repository

Details: CoinMarketCap (CMC) seems to have recently deprecated some of their V1 endpoints, which this library depends on.

In utils.py we have the core downloading logic accessing the following endpoints:

    if id_number:
        api_url = "https://web-api.coinmarketcap.com/v1/cryptocurrency/ohlcv/historical?convert={}&id={}&time_end={}&time_start={}".format(
            fiat, id_number, end_date_timestamp, start_date_timestamp
        )
    else:
        api_url = "https://web-api.coinmarketcap.com/v1/cryptocurrency/ohlcv/historical?convert={}&slug={}&time_end={}&time_start={}".format(
            fiat, coin_id, end_date_timestamp, start_date_timestamp
        )

CMC now requires an API key for this, and gives a different response than the code downstream in core.py's _download_data method expects:

Error message (download_data) : Expecting value: line 1 column 1 (char 0)

Unless I'm completely wrong, CMC's API change may make this library completely obsolete, which is sad.

ddm-j avatar May 27 '24 16:05 ddm-j

Found same error

RodryGonzalez avatar May 28 '24 11:05 RodryGonzalez

Found same error too web-api is gone

EDIT: Data can still be accessed via https://api.coinmarketcap.com/data-api/v3/cryptocurrency/historical?id=1&convertId=2781&timeStart=1633910400&timeEnd=1639180800

But couldn't find the map endpoint to get the id to get the data

lauchunlok avatar May 28 '24 19:05 lauchunlok

yes same issue

q24wang avatar May 28 '24 19:05 q24wang

same issue here

Sebasfac avatar May 29 '24 14:05 Sebasfac

Found same error too web-api is gone

EDIT: Data can still be accessed via https://api.coinmarketcap.com/data-api/v3/cryptocurrency/historical?id=1&convertId=2781&timeStart=1633910400&timeEnd=1639180800

But couldn't find the map endpoint to get the id to get the data

I think you can get the map endpoint with a basic (free) API key. My code relies on it currently.

Where did you find the docs for this endpoint you've referenced?

ddm-j avatar May 29 '24 15:05 ddm-j

Found same error too web-api is gone EDIT: Data can still be accessed via https://api.coinmarketcap.com/data-api/v3/cryptocurrency/historical?id=1&convertId=2781&timeStart=1633910400&timeEnd=1639180800 But couldn't find the map endpoint to get the id to get the data

I think you can get the map endpoint with a basic (free) API key. My code relies on it currently.

Where did you find the docs for this endpoint you've referenced?

Yes you're right and I think for this package to work it would need an endpoint without API key. I don't think there is one. I found that in a reply in StackOverflow and it happened to be working.

lauchunlok avatar May 30 '24 17:05 lauchunlok