Getting started
How to create a Telegram bot (complete beginner's guide)
By the Botable team
Creating a Telegram bot takes two things: registering it with @BotFather to get a token, and running code that uses that token to answer messages. BotFather takes about thirty seconds. The second part is what people mean when they say building a bot is hard.
The short version
Creating a Telegram bot has two distinct halves that beginners often conflate. The first is registration: you message @BotFather, Telegram's own bot for managing bots, send /newbot, choose a display name and a username ending in "bot", and receive a token. That token is the bot's identity and takes under a minute to obtain. The second half is the program. A registered bot with nothing running behind it appears online and answers nothing, because Telegram only holds the identity — the logic, the storage and the server are yours to provide. That is where the actual work lives: writing handlers for each command, deciding what the bot remembers between messages, and keeping a process running somewhere permanently so it can respond at three in the morning. Every route to a working bot differs only in how much of that second half you do yourself.
Step by step
How do you register the bot with @BotFather?
Open Telegram, search for @BotFather, and start a chat — check for the blue verified tick, because impostor accounts with similar names exist. Send /newbot. It asks for a display name, which can be anything and is changeable later, then a username, which must be unique and end in "bot". It replies with a token that looks like 123456789:AAH-long-random-string.
What do you do with the token?
It goes into whatever runs your bot, as a secret. Anyone holding it can act as your bot completely — read messages, send messages, change its profile — so it never belongs in a screenshot, a public repository, or a message to someone helping you. If it leaks, /revoke in BotFather issues a new one and invalidates the old immediately.
How does the bot get something to do?
Something must run continuously and respond to the updates Telegram sends. Three routes: write it yourself in a framework like grammY or python-telegram-bot and host it; use a menu-based builder, which is quick but limited to what its menus offer; or describe what you want to an AI builder that writes and hosts the program for you. All three end at the same place — a running process holding your token.
How do you make it look finished?
Back in BotFather: /setdescription writes the text shown before anyone starts the bot, /setabouttext fills the profile blurb, /setuserpic sets the avatar, and /setcommands populates the menu next to the message box so people can see what it does without guessing. These take five minutes and are the difference between a bot that looks abandoned and one that looks maintained.
What catches people out
- The username must end in "bot" and is permanent — the display name can change later, the username cannot
- A registered bot with no program behind it looks live and answers nothing; that is the normal state after BotFather, not a fault
- By default a bot added to a group only sees messages that start with a slash — see the privacy-mode guide before debugging silence
Questions
Does creating a Telegram bot cost anything?
Registration with BotFather is free and always has been. The cost, if any, is in running the program — a server, a hosting plan, or a platform that includes hosting. Telegram itself charges nothing for the bot to exist or to send messages.
How many bots can one account create?
BotFather allows a large number per account — enough that it is not a practical constraint for most people. If you hit the limit, deleting unused bots with /deletebot frees the slot and the username.
Want a bot that does this?
Describe it in plain language and Botable writes the code, gives the bot its own database, deploys it and keeps it running. Everything on this page is handled for you — the token, the webhook, the storage, the hosting.
Keep reading
- Bot tokenstelegram bot token
- BotFather commandsbotfather commands
- Add a bot to a grouphow to add a bot to a telegram group