Before you can register a Telegram bot, you need a username that follows Telegram's specific rules. Get any of them wrong and BotFather will reject your name without much explanation. Here's every rule you need to know.
| Rule | Requirement |
|---|---|
| Ending | Must end in bot (case-insensitive) |
| Length | 5 to 32 characters total (including "bot") |
| Allowed characters | Letters (a-z, A-Z), digits (0-9), underscores (_) |
| First character | Must be a letter (not a number or underscore) |
| Uniqueness | Cannot be taken by any user, bot, group, or channel |
Your username must end in "bot", but Telegram is flexible about formatting. All of these are valid:
@trackerbot — lowercase, no separator. @trackerBot — camelCase. @tracker_bot — underscore separator. @tracker_Bot — underscore + capital B. @TRACKERBOT — all uppercase.
However, usernames are case-insensitive for uniqueness. If @TrackerBot exists, you cannot register @trackerbot — Telegram treats them as the same name.
The minimum length of 5 characters means the shortest possible bot username is something like @xybot (2 chars + "bot"). In practice, most useful names are 8-20 characters. Very short names (5-6 chars) are almost all taken.
The 32-character maximum gives you plenty of room. Even @my_super_awesome_finance_bot fits at 29 characters.
| Character | Allowed? | Example |
|---|---|---|
| Letters a-z, A-Z | ✓ Yes | @MyTrackerBot |
| Digits 0-9 | ✓ Yes | @tracker42bot |
| Underscore _ | ✓ Yes | @my_tracker_bot |
| Hyphen - | ✗ No | — |
| Spaces | ✗ No | — |
| Dots, commas, etc. | ✗ No | — |
| Unicode / emoji | ✗ No | — |
This is the rule that causes the most frustration. Telegram usernames exist in a single global namespace — shared by users, bots, groups, and channels. If someone registered a channel called @tracker_bot, you can't use that name for your bot either.
There are also reserved names that Telegram blocks. Names containing "telegram", "admin", "support", and similar official-sounding terms are typically rejected even if not technically taken.
Forgetting "bot" at the end. Regular usernames don't need it, but bot usernames always do. BotFather will tell you, but it catches people off guard.
Starting with a number. @42trackerbot is invalid because it starts with a digit. Move the number: @tracker42bot.
Using hyphens. Web developers are used to hyphens in domain names, but Telegram only allows underscores. @my-tracker-bot is invalid — use @my_tracker_bot.
Assuming case makes it unique. @TrackerBot and @trackerbot are the same username. Case affects display but not uniqueness.
All the rules applied automatically — just enter your preferred name.
Try Bot Name Finder →