emmtte / list

Google Sheets automatic creation with Google Apps Script (GAS) for managing a cryptocurrency tracking spreadsheet with multi exchanges
262 stars 77 forks source link

function coinmarketcap() Error 429 "Too many requests" #43

Open ghost opened 5 years ago

ghost commented 5 years ago

image

Im getting error 429 on this function

Im not hitting it too many times, Left it for an hour, came back, Hit it again and same issue. Any ideas?

I can hit the URL directly in a browser no problems

image

ghost commented 5 years ago

The coinmarketcap API seems to have changed.

They now seem to require an API key : https://coinmarketcap.com/api/documentation/v1/#

The below function works but I suspect the array is in a different format or something as using this function seems to break other parts of the sheet.

Im super noob and dont really know what Im doing though

Put your API key in sheet = config cell = B35

function coinmarketcap() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Config"); var key = sheet.getRange("B35").getValue() var url="https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?convert=EUR&limit=400" var requestOptions = { method: 'GET', uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest',

headers: { 'X-CMC_PRO_API_KEY': key },

};

var request = UrlFetchApp.fetch(url, requestOptions); var text = request.getContentText(); var obj_array = JSON.parse(text); return obj_array; }

Popcorn2018 commented 5 years ago

Hi,

Yeah, coinmarketcap change their api and you need a login. Even then there's a limit of 10k points per month or approximately 333 points a day. Each time you call for the full list of coins and prices it uses 11 points, so you can only call it like 30 times per day.

Take a look at my sheet which does similar to this one. https://t.co/umUpMF3mNk

You could either use it or you can dig into the code I've used and re-purpose it for your own ends.

Personally, I set up 4 different API keys with coinmarketcap and I make the sheet randomly select one each time it calls the API... that way I'm unlikely to hit my cap no matter how many times I refresh.

emmtte commented 5 years ago

Duplicate of #42