Telegram Bot API
🌐 English

setMyCommands

Category: Bot Info · Bot API 10.3 · Official documentation

Sets the list of bot commands.

Returns: On success, returns True.

Parameters

ParameterTypeRequiredDescription
commandsArray of BotCommandYesJSON BotCommand array [{"command":"start","description":"Begin"}]
scopeBotCommandScopeOptionalJSON BotCommandScope object
language_codeStringOptionalLanguage code

Parameter descriptions are concise summaries; see the official documentation for the full text.

Example request

curl

curl -s -X POST "https://api.telegram.org/bot$TOKEN/setMyCommands" \
  -H "Content-Type: application/json" \
  -d '{"commands":[{"command":"start","description":"Start the bot"}]}'

Python

import requests

TOKEN = "123456789:AAEexampleTokenReplaceWithYours"
resp = requests.post(
    f"https://api.telegram.org/bot{TOKEN}/setMyCommands",
    json={
        "commands": [
            {
                "command": "start",
                "description": "Start the bot"
            }
        ]
    },
    timeout=30,
)
print(resp.json())

JavaScript

const TOKEN = "123456789:AAEexampleTokenReplaceWithYours";
const res = await fetch(`https://api.telegram.org/bot${TOKEN}/setMyCommands`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "commands": [
      {
        "command": "start",
        "description": "Start the bot"
      }
    ]
  }),
});
console.log(await res.json());

Step-by-step guide: How to Create a Telegram Bot: Step by Step with BotFather and Python