Telegram Link Generator
A Telegram link generator builds the addresses that open Telegram at a specific place: a channel, a group, a person, a bot, or one particular post. Every such address exists in two forms: a t.me web link anyone can open, and a tg:// deep link that goes straight to the app. The t.me form is a web page that hands off to the app, so it works for someone who hasn’t installed Telegram yet. The tg:// form addresses the app directly and does nothing without it. Which one you want depends on where the link is going, so this tool produces both and says what each will do. It also builds the parts that are easy to get wrong by hand: URL-encoded prefilled messages, bot start payloads inside Telegram’s 64-character limit, and a QR code drawn in your browser. We got tired of QR services that outlive nothing, so this one draws locally.
- Both forms, explained. Web link and deep link side by side, each with a plain sentence about what actually opens. That includes what happens when Telegram isn’t installed.
- QR without a middleman. Drawn in this tab, downloadable as PNG or SVG. No shortener sits between your poster and your channel.
- Reads links, too. Paste a link from an advertisement and see the target and the payload it carries. Worth doing before you agree to run it.
The parts people get wrong
- The 64-character start payload
- Telegram accepts only letters, digits, underscores and hyphens, up to 64 characters. Readable tracking values don’t fit. So this packs them into base64url and reads them back, and you can check a link before it goes on a poster.
- Invite hashes and phone numbers look alike
- Both start with a
+after the domain.t.me/+919876543210is a phone number.t.me/+AbCdEf123is a private invite. The reader tells them apart. - Encoding the prefilled message
- Spaces, ampersands and question marks in a
?text=parameter break the link quietly, and the chat opens with half the sentence. We encode it for you.
Build a Telegram link
A public channel, with a Join button.
Your links
https://t.me/durovchannelSafe to put in front of anyone: it opens a web page that hands off to the app, so people without Telegram installed still land somewhere.
tg://resolve?domain=durovchannelOpens the installed app directly, skipping the web hop. It does nothing at all when Telegram is not installed, so use it inside your own app rather than in public posts.
What opens: The channel @durovchannel, with a Join button for anyone who is not a member. Public channels only — private ones need an invite link.
<a href="https://t.me/durovchannel" target="_blank" rel="noopener">Open in Telegram</a>Drop this into a site or an email.
QR code
Generated in this tab from the web link, so it keeps working for people without the app. Nothing is sent to a QR service.
Read a link
Paste any Telegram link — from an ad, a partner, a competitor — and see what it actually points at and what payload it carries.
Which link belongs where
One tool covers every target, because they differ only in the shape of the address. A Telegram group link generator and a channel one produce the same username form. A Telegram bot link generator adds a start payload, a Telegram share link generator builds the forward sheet, and the Telegram QR code generator draws whichever of them you settled on.
For anything the public will see, whether that is a post on another platform, an email or a printed code, use the t.me form. Some of the people who click it won’t have Telegram, and the web page handles them. A tg:// link silently fails for exactly that group, which is the group you were hoping to convert. Inside your own mobile app, or in a message people are already reading in Telegram, the deep link is better. It skips the browser hop and the page flash. Both are produced above, so you can take the right one rather than the one you happened to copy.
Telegram link not working? What to check
Six things account for nearly every broken Telegram link, and the app rarely tells you which one you’ve hit.
- The username changed or was released. Telegram usernames aren’t permanent. A link to a name its owner has given up simply fails, and someone else may hold it now. Worth knowing before you print it.
- The chat is private. A private group or channel has no username, so it has no
t.me/nameaddress at all. The only way in is an invite link, and an admin can revoke that. - The invite link was revoked. Revoking one breaks it silently for everyone who hasn’t used it yet. Links made for a limited number of uses expire the same way.
- A
tg://link where the app is not installed. The deep-link form does nothing at all without Telegram, and many platforms won’t make it clickable in the first place. Use thet.meform anywhere the public sees it. - The prefilled message was not URL-encoded. A space, an ampersand or a question mark inside
?text=truncates the message or breaks the link outright. The generator above encodes it for you. - The start payload is invalid. Telegram accepts only letters, digits, underscores and hyphens, up to 64 characters. Anything else, a space or a colon or an equals sign, and the parameter is dropped. The bot never learns where the person came from, and nothing visibly fails.
The reader at the bottom of this page tells you which case you’re in for any link you paste: whether it addresses a username or an invite hash, and what payload it carries.
Tracking where subscribers came from
Channel links can’t carry a tracking parameter. Telegram ignores anything extra on t.me/yourchannel, and the channel has no way to see it. Bot links can. The start payload arrives with the first message, before the person types anything, so the bot knows which advertisement produced them. That is why growth funnels needing attribution route through a bot rather than straight to the channel, and why the bot then offers the channel link. If you are paying for placements and can’t tell which one worked, this is the mechanism you are missing.
Reading a link before you agree to run it
An advertiser sends a link and a price. The link tells you more than the pitch does. It shows whether the target is a channel or a bot, whether it carries a campaign payload, and whether the destination is public at all. A link into a private invite means you can’t check what you are sending your audience into. Paste it into the reader above. It works on both link forms, and on shortened forms that still resolve to a Telegram address.
Telegram links — questions
- How do I create a link to my Telegram channel?
- A public channel is reachable at t.me/yourchannel, using the username set in the channel settings. Enter the name above and you get that link plus its tg:// twin. A private channel has no username, so it has no address of this kind. The only way in is an invite link generated inside the app, and an admin can revoke that later. If your channel has no username yet, adding one in Channel Settings turns it public and gives it a permanent link.
- What is the difference between a t.me link and a tg:// link?
- A t.me link opens a web page that then hands off to the Telegram app. Someone without Telegram still lands on a page that tells them what they found and offers the app, so nothing is lost. A tg:// link addresses the app directly and skips the web hop. That is faster and avoids the browser flash, but it does nothing at all if the app is missing, and many places won't make it clickable. Use t.me anywhere the public can see it. Use tg:// inside your own app, or in a QR code aimed at people you know already have Telegram.
- Should I use t.me or telegram.me?
- They are the same service on two hostnames, and either works for a normal visitor. The short one is what people recognise, so it is the default here. The long one matters in specific places. The short domain is blocked, or fails to resolve, on some corporate networks, at several hosting providers, and in a few regions. So a link that a server, a scraper or a monitoring job will fetch is safer written out in full. It's switchable above rather than decided for you.
- How does a Telegram bot start parameter work?
- A link of the form t.me/yourbot?start=abc123 opens a chat with a Start button. Pressing it sends /start abc123 to the bot before the user types anything. That payload is how a bot knows where someone came from: which advertisement, which partner, which referrer. Telegram limits it to 64 characters of letters, digits, underscores and hyphens, which is why the attribution option above packs source, campaign and tag into base64url first. Use ?startgroup= instead of ?start= when the link is for adding the bot to a group.
- Can I put a message in the link so it is already typed?
- Yes, with ?text= on a user, group or phone link. The recipient sees the message waiting in the input box and still has to press send. Telegram never sends anything on someone's behalf. That's the right design, and the reason the parameter is safe to use. The text has to be URL-encoded, which we do for you. Hand-writing it is where the spaces and ampersands usually go wrong.
- How do I make a QR code for my Telegram channel?
- Enter the channel above and the QR code appears next to the links. PNG and SVG are both downloadable. It encodes the t.me web link rather than the tg:// one, deliberately. A scanner belonging to someone without Telegram still reaches a real page instead of silently doing nothing. We draw the code in this browser tab, so the link never goes to a QR service. That also means the image keeps working after any such service disappears, unlike a shortened one.
- How can I tell where somebody else's Telegram link points?
- Paste it into the reader at the bottom of the page. It reports the kind of target, whether channel, bot, post, invite or phone, plus the username, the message number if there is one, and the start payload if the link carries one. That's the practical use for anyone buying advertising. A link in a promo tells you which bot it feeds, and what campaign tag the advertiser is attaching to your audience.
- Why is my Telegram link not working?
- Six causes cover nearly all of them. The username was changed or released, because Telegram usernames aren't permanent. The chat is private, so it has no username to address at all. An invite link was revoked, which breaks it for everyone who hasn't used it yet. A tg:// link was used where Telegram isn't installed, so it does nothing. The prefilled ?text= wasn't URL-encoded, so a space or an ampersand truncated it. Or the start payload contains a character outside letters, digits, underscore and hyphen, so Telegram drops it silently and the bot never learns where the person came from.
- Do these links expire?
- Username links don't. t.me/yourchannel keeps working as long as the username is yours, and stops if you release or change it. Invite links to private groups are different. An admin can revoke one at any time, and a revoked link fails for everyone who hasn't used it yet. If a printed QR code needs to work for a year, base it on a username rather than an invite link.
Writing the message the link opens with? The formatter handles the escaping. Sizing up the channel on the other end? The channel checker reads its subscriber and view numbers. Everything else is on the tools hub.