💰 Урок 12: Multi API — криптовалюти та валюти

💡 У цьому уроці ми вперше підключаємо НЕ ОДИН API, а декілька одночасно.
🔥 Це вже принцип справжніх backend-систем:

програма збирає дані з різних сервісів і об’єднує їх в один результат.

🧠 Ідея уроку

Наш бот:

1️⃣ бере криптовалюту (CoinGecko)
2️⃣ бере курс валют (Exchange API)
3️⃣ рахує значення в гривнях
4️⃣ формує красивий звіт

🌍 API криптовалют

https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,dogecoin,solana,cardano,ripple&vs_currencies=usd

💵 API валют (ВИПРАВЛЕНИЙ)

https://open.er-api.com/v6/latest/USD
✔ це стабільний API курсів валют
✔ більше не використовуємо exchangerate.host

🤖 Повний код бота

from bendbandbot import SimpleBot import requests with open("token.key", "r", encoding="utf-8") as f: token = f.read().strip() bot = SimpleBot(token) def crypto(update): # 🌍 крипта crypto_url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,dogecoin,solana,cardano,ripple&vs_currencies=usd" # 💵 валюта (СТАБІЛЬНИЙ API) rates_url = "https://open.er-api.com/v6/latest/USD" crypto_data = requests.get(crypto_url).json() rates_data = requests.get(rates_url).json() # 🛡 перевірка if "rates" not in rates_data: bot.send(update, "❌ Помилка отримання валют") return usd_to_uah = rates_data["rates"]["UAH"] icons = { "bitcoin": "₿", "ethereum": "Ξ", "dogecoin": "🐶", "solana": "☀", "cardano": "💎", "ripple": "⚡" } msg = "💰 Криптовалюти\n\n" for coin in crypto_data: usd = crypto_data[coin]["usd"] uah = usd * usd_to_uah icon = icons.get(coin, "🪙") msg += ( f"{icon} {coin.capitalize()}\n" f"${usd}\n" f"≈ {round(uah, 2)} грн\n\n" ) bot.send(update, msg) bot.on_command("crypto", crypto) bot.start()

🧠 Що ти зараз навчився

✔ працювати з кількома API
✔ обробляти JSON
✔ робити перевірку помилок
✔ будувати просту backend-логіку
✔ комбінувати дані

🧪 Завдання

✍️ Додай Litecoin
✍️ Додай Monero
✍️ Виведи тільки топ 3 монети
✍️ Зміни валюту на EUR