Using the python coinbase API-- The functions-- get_buy_price
, get_sell_price
, get_spot_price
, get_historical_data
, etc... all seem to return bitcoin prices only. Is there a way of querying Ethereum prices?
It would seem that currency_pair = 'BTC-USD'
could be changed to something akin to currency_pair = 'ETH-USD'
although this has no effect.
I would expect that the API simply doesn't support this, except that the official documentation explicitly states:
Get the total price to buy one bitcoin or ether
I can work around this somewhat by using the quote='true'
flag in the buy/sell request. This however only works moving forward, I would like historical data.
How to get historical data with Coinbase Pro API? Historical data can be obtained by using the get_product_historic_rates endpoint with the Coinbase Pro API. You can specify the granularity, start and end date as the parameters of the API request.
Price history of ETH: On August 7, 2015, the first Ethereum transaction was carried out using the transaction hash of block 46147. Since its creation in 2015, Ethereum was under $1 for the major part of 2015, but by March 2016 Ether crossed the $10 mark, when it briefly reached $10.03 on March 4, 2016.
Coinbase Prime APIs include a REST API, the FIX API protocol 4.2, and a Websocket market data feed. The Prime REST API lets institutional traders place orders and get historical order data.
The current price is $0.0006 per APIS.
source code will always be your friend.
def get_spot_price(self, **params):
"""https://developers.coinbase.com/api/v2#get-spot-price"""
if 'currency_pair' in params:
currency_pair = params['currency_pair']
else:
currency_pair = 'BTC-USD'
response = self._get('v2', 'prices', currency_pair, 'spot', data=params)
return self._make_api_object(response, APIObject)
def get_historic_prices(self, **params):
"""https://developers.coinbase.com/api/v2#get-historic-prices"""
response = self._get('v2', 'prices', 'historic', data=params)
return self._make_api_object(response, APIObject)
We can see that both functions call the same api endpoint. We see that get_spot_price
supports the currency_pair
argument and passes it as part of the api call. On the other hand get_historic_prices
does not.
I wonder what would happen if it did. Let's try it:
from coinbase.wallet.client import Client
from coinbase.wallet.model import APIObject
client = Client(api_key, api_secret)
client._make_api_object(client._get('v2', 'prices', 'ETH-USD', 'historic'), APIObject)
<APIObject @ 0x10dd04938> {
"currency": "USD",
"prices": [
{
"price": "52.60",
"time": "2017-03-30T17:03:48Z"
},
{
"price": "52.60",
"time": "2017-03-30T17:03:38Z"
},
{
"price": "52.54",
"time": "2017-03-30T17:03:28Z"
},
{
"price": "52.54",
"time": "2017-03-30T17:03:18Z"
},
{
"price": "52.54",
"time": "2017-03-30T17:03:08Z"
},
{
"price": "52.53",
"time": "2017-03-30T17:02:58Z"
},
{
"price": "52.53",
"time": "2017-03-30T17:02:48Z"
},
{
"price": "52.53",
"time": "2017-03-30T17:02:38Z"
},
{
"price": "52.53",
"time": "2017-03-30T17:02:28Z"
},
.....
Success!
I'll sent a PR their way. but for now you can use my code snippet.
PR submitted
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With