DEV Community

Cover image for Create a bitcoin price watcher

Posted on

Create a bitcoin price watcher

You can create your own cryptocurrency price ticket. This is an excellent exercise for learning how to use APIs from Python.

A free API is the coinmarketcap API. You can request price information directly from a script. To make the request we use the requests module.

import requests

bitcoin_api_url = ''
response = requests.get(bitcoin_api_url)
response_json = response.json()

That outputs the current price and more information to your terminal if you run the script.

[{'id': 'bitcoin', 'name': 'Bitcoin', 'symbol': 'BTC', 'rank': '1', 'price_usd': '10681.1782936', 'price_btc': '1.0', '24h_volume_usd': '21114044526.6', 'market_cap_usd': '191336753303', 'available_supply': '17913450.0', 'total_supply': '17913450.0', 'max_supply': '21000000.0', 'percent_change_1h': '0.11', 'percent_change_24h': '7.82', 'percent_change_7d': '5.02', 'last_updated': '1567522779'}]

You can get the current price like this:

for coin in response.json():                                        
    print(coin.get("price_usd", "U$S Price not provided"))          

That outputs $10616.5048903 which needs rounding. This is a string, but you can convert it like this:

btc_price = float(("{0:.2f}").format(float(price)))             
print("$ " + str(btc_price))   

There's probably a nicer way to do this, but this does the job.



Big chance you use another currency if you don't live in the US. You can use the module forex_python to convert the rate.

Load the module:

from forex_python.converter import CurrencyRates

Then you can get the conversion rate of USD to another currency like this:

c = CurrencyRates()                                                 
rate = c.get_rate('USD', 'EUR')                                     

Then convert the btc price to euro:

btc_price_eur = float(("{0:.2f}").format(float(price)*rate))    
print("\u20ac " + str(btc_price_eur))  

What is this "\u20ac " you ask? This is how you can print the euro symbol. It's the unicode font code.

You can find a list of unicode currency symbols here:
unicode currency symbols.


If you are trading, you want to get notifications instead of watching the price 24/7. You can use the os module with notify-send app (Linux) to get notifications.

if btc_price_eur > 9000:                                        
   os.system("notify-send trade btc")                           

You can do this on your phone too, or email. To keep watching the price, you can put the whole code in a loop and keep it running in the background. Happy coding! :)

Read more:

Top comments (1)

vikramchandra profile image
Vikram Sharma

Coinmarketcap api is an awesome tool. I have used it in few projects myself. I am a Rails guy but learning Python as I am considering a switch to Data Science. I also wrote an intro tutorial on coin marketcap api.