DEV Community

David García
David García

Posted on

Build a Telegram bot that monitors your website uptime — free

```html

TL;DR: You can build a Telegram bot that automatically alerts you if your website goes down, all without paying a dime – this tutorial shows you how.

Build a Telegram Bot that Monitors Your Website Uptime – Free

Let’s be honest, as developers, we all spend way too much time firefighting. A website outage isn’t just bad for your users; it’s a headache. Traditional uptime monitoring services can be expensive, and sometimes you just want a simple, immediate notification. That's where a custom Telegram bot comes in. This tutorial will walk you through building one using Python, and you won't need to shell out a single penny.

The Insight: Simple Automation

The core idea is straightforward: we’ll periodically check if your website is accessible, and if it isn’t, we’ll send a message to a Telegram channel. This leverages the power of automation – you don’t need to manually check your site every few minutes. We'll use Python for its ease of use and the abundance of libraries available.

Example: Checking Website Uptime


import requests

import telegram

import time

Replace with your Telegram bot token and website URL

BOT_TOKEN = "YOUR_BOT_TOKEN"

CHAT_ID = "YOUR_CHAT_ID"

WEBSITE_URL = "https://www.example.com"

CHECK_INTERVAL = 60 Check every 60 seconds

bot = telegram.Bot(token=BOT_TOKEN)

def check_website():

try:

response = requests.get(WEBSITE_URL)

response.raise_for_status() Raise HTTPError for bad responses (4xx or 5xx)

return True

except requests.exceptions.RequestException as e:

print(f"Website unreachable: {e}")

return False

while True:

if not check_website():

bot.send_message(chat_id=CHAT_ID, text=f"⚠️ Website {WEBSITE_URL} is down!")

time.sleep(CHECK_INTERVAL)

This code snippet does the following:

  • Imports necessary libraries: `requests` for making HTTP requests, `telegram` for interacting with the Telegram Bot API, and `time` for pausing execution.
  • Defines your bot token, chat ID (where the messages will be sent), and the website URL you want to monitor.
  • Creates a `telegram.Bot` object using your bot token.
  • The `check_website` function attempts to access the website. If the request is successful (status code 200-299), it returns `True`. If there's an error (like a 404 or connection error), it catches the exception and returns `False`.
  • The main loop continuously calls `check_website`. If the website is down, it sends a message to your Telegram channel using `bot.send_message()`.
  • `time.sleep(CHECK_INTERVAL)` pauses the execution for the specified interval.

Practical Tip: Using `requests-html`

For more complex website checks, consider using the requests-html library. It simplifies handling JavaScript-heavy websites by executing the website’s JavaScript, allowing you to see the actual content.

Conclusion

Building a Telegram bot for uptime monitoring is a fantastic way to proactively manage your website’s availability. It's a small investment of time and effort that can save you a significant amount of stress. This simple bot provides immediate feedback and prevents potential damage to your brand and user experience.

Want more automation tools and custom solutions? I specialize in building tailored automation for businesses and developers. Let’s discuss your specific needs!

```


Itelnet Consulting

Top comments (0)