I trying to do some testing on historical coinbase data. Because I can only get 300 datapoints per request. Im looping the request and change the start and end paramter to got backwards.

My requests now look like this: https://api.pro.coinbase.com/products/BTC-EUR/candles?granularity=60&start=2018-11-09T17:11:08Z&end=2018-11-09T18:11:08Z

AFAIK they are ISO 8601 formatted and the time difference between start and end is correct.

However, im getting not 60 points but 350, so the end date is ignored and the start date also changes whenever I reload the link.

Can someone shine some light on how to correctly do the request for 1 hour of data?

2 Answers 2


The coinbase API docs say:

If data points are readily available, your response may contain as many as 300 candles and some of those candles may precede your declared start value.

So it looks like you need to parse and remove the extra data if you don't need it.


@jbaczuk possible but that would be very inefficient.

but i just noticed something. im in utc+1 so my datetime.datetime.now() produces timestamps that are in the future when looking from utc.

so when i set my timestamp back 1 hour i get correct requests this was produced at 22:05 local time https://api.pro.coinbase.com/products/BTC-EUR/candles?granularity=60&start=2018-11-09T20:05:54&end=2018-11-09T21:05:54 and it should display correctly

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.