Telegram Link Generator – One Host, Five Different Links
Almost everything Telegram exposes to the open web lives behind a single host, t.me. A profile, an account that has no username, a message inside a channel, a bot that should start with a parameter and a share sheet are five different shapes of path and query string on that one host — which is exactly why they are so easy to get wrong by hand. This Telegram link generator builds each shape from the pieces you type, shows the finished URL broken into labelled segments, and renders it as a QR code, all in your browser.
The five link shapes
A profile link is the simplest: the handle is the whole path, as in https://t.me/durov. A phone number link is for accounts that never set a username and takes the form https://t.me/+15551234567 — the plus is part of the path and everything after it is digits, with no spaces, brackets, dashes or leading 00. A channel post link adds the message id as a second path segment, https://t.me/durov/123, and dropping the id points at the channel itself. A bot start link moves into the query string: https://t.me/examplebot?start=ref_abc carries a payload the bot receives when the chat opens, and the group variant uses startgroup in place of start. A share link points at Telegram's own share endpoint with your page and message as percent-encoded parameters.
What actually goes wrong
The common failures are small and silent. A phone number copied from a contact card arrives as +44 20 7946 0958 and has to be reduced to digits. A number written with the international access prefix0044 needs that 00 dropped, because the + in the path is what replaces it. A handle is pasted as a whole address rather than typed, so the tool accepts https://t.me/name, t.me/name and @name and pulls the handle out of each. A bot link written by hand ends up with a dangling ?start= when the payload is empty — here an empty payload simply produces the plain bot link.
Payloads themselves are the other trap. A start payload is documented as a restricted set of characters, so a referral code containing spaces or punctuation cannot travel as typed. The Base64URL option converts your text into letters, digits, hyphen and underscore, and shows both the raw and the encoded form so you can tell the bot's author which one it will receive.
Formatted is not the same as working
This page is a static site with no backend, so it never contacts Telegram. It tells you that a link is correctly formatted — the characters are legal for a t.me path and the parts are in the right order — not that the account, channel or bot on the other end exists. A perfectly formed link to a handle nobody owns is still perfectly formed, so open a generated link once yourself before it goes on a poster.
tg:// scheme is undocumented or lightly documented and differs between Telegram Desktop, iOS and Android. Those parameter names could not be checked when this tool was built, and a deep link that silently does nothing is worse than no deep link, so none is produced. The https://t.me/ form is the one Telegram publishes anyway.Safety and encoding
Every generated URL is assembled through the browser's own URL and URLSearchParams objects rather than by joining strings, so an ampersand or a question mark in your message cannot end one parameter and start another. In the share mode, the page you paste is checked against an allowlist of http: and https: before anything is built, which is why a javascript: or data: address produces no output at all, and the address you paste is echoed back as plain text rather than as something clickable.
Putting the link to work
Copy the URL for a link-in-bio field or a button, copy the ready-made HTML anchor when it is going into a page, or download the QR code for print. The segment breakdown under the link is worth a glance before you publish: it names every part of the URL and where that part came from, which makes it obvious whether the thing you are about to print points at a channel, a single post or a bot carrying a campaign tag.