Limits
Bot count
The default owner quota is 25 bots. Administrators can raise it; zero means unlimited.
Fields and grids
display_name is 80 characters, description 1000, welcome text and action data 4000, and command/button text 255. Menus allow 9 rows and 10 buttons per row.
Media and webhook
Uploads are limited to 200 MB and webhook responses to 5 seconds. Queue long work and acknowledge delivery first.
Pagination
Owned and installed lists use independent opaque cursors and display ten items at a time. Do not construct cursors manually.
SDK practice
Validate documented limits before sending, while still handling server-side 413, 422, and 429 responses because limits may evolve independently from an SDK release.
Treat pagination cursors as opaque and discard them when filters or owner scope changes.
Usage examples
const rows = commands.slice(0, 9).map(row => row.slice(0, 10));
await bot.sendMessage({ chat_id: chatId, content: { text: 'Menu updated', menu: { rows } } });