Telegram Bot API settings map
Use this reference when you need the exact Bot API surface for bot-facing profile/config changes.
Covered by the bundled CLI
Identity and public profile
getMegetMyName/setMyNamegetMyDescription/setMyDescriptiongetMyShortDescription/setMyShortDescriptionsetMyProfilePhoto/removeMyProfilePhoto
Notes:
- Localized name/description calls support
language_code. - Static profile photos are uploaded as
InputProfilePhotoStaticand are expected as.jpg/.jpegby Bot API. - Animated profile photos use
InputProfilePhotoAnimatedwith an MPEG4 file and optionalmain_frame_timestamp. - The bundled CLI auto-converts non-JPEG static images to JPEG when Pillow is available.
Commands
getMyCommandssetMyCommandsdeleteMyCommands
Notes:
- Commands can be scoped with
BotCommandScopeJSON. - Commands can also be localized with
language_code.
Example commands JSON:
[
{"command": "start", "description": "Open the bot"},
{"command": "help", "description": "Show help"}
]Example scope JSON:
{"type": "default"}Menu button
getChatMenuButtonsetChatMenuButton
Common menu button payloads:
{"type": "default"}{"type": "commands"}{
"type": "web_app",
"text": "Open app",
"web_app": {"url": "https://example.com/app"}
}Notes:
- Without
chat_id, the default menu button is changed. - With
chat_id, the change applies to a specific private chat.
Default admin rights
getMyDefaultAdministratorRightssetMyDefaultAdministratorRights
Example rights JSON:
{
"can_manage_chat": true,
"can_delete_messages": true,
"can_invite_users": true,
"can_restrict_members": false,
"can_pin_messages": true,
"can_manage_topics": true
}Notes:
- Group/supergroup rights are the default branch.
- Add
for_channels=truefor channel defaults. - Omitting
rightsclears the defaults.
Use the raw escape hatch for future methods
The CLI includes a raw subcommand:
python scripts/telegram_bot_settings.py raw METHOD --data '{...}'Use it when Telegram adds a new account-level setting before the wrapper gets updated.
Things Bot API still does not cleanly cover for this skill
Treat these as out of scope unless Telegram adds/changes methods and you intentionally extend the script:
- bot token rotation
- privacy mode / group visibility toggles
- inline mode enable/disable
- main username changes / username purchasing / Fragment flows
- BotFather-only setup flows and owner-account settings
Suggested change order
- Run
statusfirst. - Change one surface at a time.
- Re-read the specific getter after each change if the output matters.
- For bigger edits, save JSON payloads in files and pass them with
@file.jsoninstead of long inline shell strings.