{"registry_version":"2026.1025.387","generated_at":"2026-10-25T06:27:00Z","content_sha256":"089d16f627d9365e3d0663cc8069203706d7cb23a76c332226e29686968811a5","signed":true,"signature":{"key_id":"ed25519:74ca19268e364242","algorithm":"ed25519","expires_at":"2026-11-24T06:27:09Z","expired":false,"manifest":"/registry/manifest.json"},"entry_sha256":"61b71e9d08ae33ed5386c5a0b71f838828fd6f38c98db2dd986ca130b51a1b0e","entry":{"id":"telegram/bot","name":"Telegram Bot (Bot API)","vendor":"Telegram","summary":"Create a bot with @BotFather to get a bot token for the Telegram Bot API, then optionally set a webhook with a secret token.","category":"messaging","group":"C","homepage":"https://core.telegram.org/bots","docs":["https://core.telegram.org/bots/features","https://core.telegram.org/bots/api","https://core.telegram.org/bots/faq"],"status":"researched","last_verified":null,"last_researched":"2026-10-25","sources":[{"id":"features","url":"https://core.telegram.org/bots/features","title":"Telegram Bot Features - BotFather","accessed":"2026-10-25","supports":"/newbot creates a bot; username 5-32 chars, Latin letters/digits/underscores, must end in bot, cannot be changed; token format numeric id, colon, alphanumeric string; /token regenerates; keep token secure","kind":"official"},{"id":"tutorial","url":"https://core.telegram.org/bots/tutorial","title":"Telegram bot tutorial","accessed":"2026-10-25","supports":"Get a token from @BotFather via /newbot; token can be revoked any time via @BotFather; treat token like a password; store in environment variables in production","kind":"official"},{"id":"bot-api","url":"https://core.telegram.org/bots/api","title":"Telegram Bot API reference (Bot API 10.3)","accessed":"2026-10-25","supports":"Requests to https://api.telegram.org/bot<token>/METHOD; webhook ports 443, 80, 88, 8443; secret_token 1-256 chars A-Z a-z 0-9 _ - sent in X-Telegram-Bot-Api-Secret-Token; getUpdates does not work while a webhook is set","kind":"official"},{"id":"faq","url":"https://core.telegram.org/bots/faq","title":"Telegram Bots FAQ","accessed":"2026-10-25","supports":"About 1 message per second per chat, 20 per minute per group, about 30 per second bulk; paid broadcasts up to 1000/s at 0.1 Stars per message over 30/s, needing 100,000 Stars and 100,000 MAU; messaging users is free by default","kind":"official"},{"id":"dev-terms","url":"https://telegram.org/tos/bot-developers","title":"Telegram Bot Platform Developer Terms","accessed":"2026-10-25","supports":"Digital goods must be sold exclusively for Telegram Stars; physical goods via third-party providers; privacy policy required; data minimisation and ban on collecting data for datasets/AI; encryption at rest; prohibited uses; Telegram may ban or discontinue; /paysupport; Stars expire three years after receipt; 15% fee with private-chat topics","kind":"official"},{"id":"stars","url":"https://core.telegram.org/bots/payments-stars","title":"Telegram Bot Payments for digital goods (Stars)","accessed":"2026-10-25","supports":"Digital goods must use Stars (currency XTR); provider_token only for physical goods; bots must answer /terms, /paysupport and offer /support; refundStarPayment for refunds; app store rules","kind":"official"}],"allowed_domains":["core.telegram.org","telegram.org","t.me"],"account_model":{"summary":"A Telegram user account talks to @BotFather, which creates bots owned by that account; each bot has its own token.","accounts":[{"name":"Telegram user account","kind":"personal","owned_by":"the person","required":true,"note":"Needed to message @BotFather."},{"name":"Bot","kind":"developer","owned_by":"the person","parent":"Telegram user account","required":true,"note":"The username cannot be changed after creation."}]},"prerequisites":[{"need":"A Telegram account signed in on a Telegram app","note":"You create the bot by chatting with @BotFather. Phone-number requirements for Telegram accounts are not covered in the bot docs reviewed. [to verify]"},{"need":"A privacy policy for the bot","note":"The Bot Platform Developer Terms require an easily accessible privacy policy; Telegram's Standard Policy may be used if you have none."}],"have_ready":[{"kind":"app_privacy_policy_url","description":"A privacy policy URL for the bot, or acceptance of Telegram's Standard Policy","why":"The Bot Platform Developer Terms require bots to have a privacy policy easily accessible to users.","needed_for":["accept-terms"],"auto_check":"website_live","source":"dev-terms"},{"kind":"live_website","description":"An HTTPS endpoint on port 443, 80, 88 or 8443 if you use a webhook","why":"Webhooks can only be delivered to those ports; otherwise use getUpdates long polling.","needed_for":["set-webhook"],"auto_check":"website_live","source":"bot-api"}],"steps":[{"id":"accept-terms","title":"Review the Bot Platform Developer Terms","summary":"Read the Telegram Bot Platform Developer Terms, which apply on top of the Telegram Terms of Service and Privacy Policy, including the privacy policy requirement and the Stars-only rule for digital goods.","route":"guided","depends_on":[],"gate":"human_terms","url":"https://telegram.org/tos/bot-developers","sources":["dev-terms"]},{"id":"create-bot","title":"Create the bot with @BotFather","summary":"In Telegram, open @BotFather and send /newbot. Give a display name and a username of 5-32 characters (Latin letters, digits, underscores) ending in \"bot\"; the username cannot be changed later. BotFather replies with the bot token; verapli writes it to your env file.","route":"guided","depends_on":["accept-terms"],"gate":"human_submit","url":"https://t.me/botfather","recovery":[{"hiccup":"Token leaked or lost","fix":"Use the /token command in @BotFather to generate a new token; anyone holding the old token can control the bot.","source":"features"}],"capture":{"env":"TELEGRAM_BOT_TOKEN","kind":"token"},"sources":["features","tutorial"]},{"id":"set-webhook","title":"Set a webhook with a secret token (optional)","summary":"Call setWebhook with your HTTPS URL (port 443, 80, 88 or 8443) and a secret_token of 1-256 characters (A-Z, a-z, 0-9, _ and -). Telegram sends it in the X-Telegram-Bot-Api-Secret-Token header so you can verify requests. While a webhook is set, getUpdates long polling does not work.","route":"api","depends_on":["create-bot"],"gate":"none","capture":{"env":"TELEGRAM_WEBHOOK_SECRET","kind":"webhook_secret"},"optional":true,"sources":["bot-api"]}],"outputs":[{"name":"TELEGRAM_BOT_TOKEN","description":"Bot API token from @BotFather, used in https://api.telegram.org/bot<token>/METHOD","secret":true,"example_format":"123456789:AA… (numeric id, colon, alphanumeric string)","environments":["development","production"],"from_step":"create-bot"},{"name":"TELEGRAM_WEBHOOK_SECRET","description":"Secret you choose and pass as secret_token to setWebhook; compare it with the X-Telegram-Bot-Api-Secret-Token header","secret":true,"example_format":"1-256 chars of A-Z a-z 0-9 _ - (you choose it)…","environments":["production"],"from_step":"set-webhook"}],"terms_notes":[{"kind":"rules_say","severity":"red","title":"Digital goods must be sold for Telegram Stars","text":"Payments for digital goods and services in bots and Mini Apps must be made exclusively in Telegram Stars (currency XTR), even if you have your own website or payment system; crypto is not allowed. Telegram may hide bots that sell digital goods by other means from mobile users. Physical goods may use third-party payment providers.","source":"stars"},{"kind":"rules_say","severity":"amber","title":"Required /terms, /paysupport and /support commands for payments","text":"Bots that take payments must answer /terms (users confirm they agree before purchase), /paysupport for payment issues, and offer /support or another clear support channel. Refunds use refundStarPayment and are deducted from the bot's balance.","source":"stars"},{"kind":"rules_say","severity":"amber","title":"Privacy policy and data limits","text":"Bots must have an easily accessible privacy policy (Telegram's Standard Policy can be used), collect only data the service needs, encrypt user data at rest stored apart from its key, and must not collect data to build datasets, machine learning models or AI products, including scraping public group or channel content.","source":"dev-terms"},{"kind":"rules_say","severity":"amber","title":"Prohibited uses and termination","text":"No spam or unsolicited messages, malware, illegal or pirated goods, MLM or Ponzi schemes, growth manipulation, or phishing such as asking for Telegram passwords or OTPs; Mini Apps may not promote non-TON cryptoassets. Telegram may ban bots or accounts and may discontinue the Bot Platform or any bot at any time; conflicts are resolved in Telegram's favour.","source":"dev-terms"},{"kind":"rules_say","severity":"yellow","title":"Stars economics and fees","text":"Stars received expire three years after receipt; Stars can be spent on Telegram Ads (valued at 0.02 USD of ad credit) or exchanged for rewards. Enabling topics in private chats adds a 15% fee on Star purchases.","source":"dev-terms"},{"kind":"rules_say","severity":"yellow","title":"Messaging rate limits","text":"Avoid more than about 1 message per second per chat and 20 per minute per group; bulk sending is about 30 messages per second. Paid broadcasts allow up to 1000 per second at 0.1 Stars per message above 30/s and need at least 100,000 Stars and 100,000 monthly active users.","source":"faq"}],"pricing_notes":{"free_tier":"Creating bots and using the Bot API is free; bots can message their users at no cost by default.","costs":"Paid broadcasts cost 0.1 Stars per message above the free 30 messages per second.","notes":"Commercial bots may sell physical goods through third-party payment providers and digital goods only for Stars.","source":"faq"},"stripe_projects":false,"api_provisioning":{"available":"no","notes":"Bots and tokens are created only by chatting with @BotFather; once you have a token, bot configuration (webhooks, commands) is available through the Bot API.","docs":["https://core.telegram.org/bots/api"],"source":"features"},"notes":["The Bot Platform Developer Terms page shows no last-updated date; changes take effect when posted.","The tutorial mentions revoking tokens via @BotFather; the features page names the /token command for regeneration. Exact command names in the current BotFather menu [to verify].","Stars withdrawal (for example via Fragment) is not covered in the pages reviewed. [to verify]"]}}