У Telegram нет одного числа «сколько символов можно». Ограничение зависит от того, куда попадает текст: в обычное сообщение, в подпись к фотографии, в описание канала или в вариант ответа опроса. Разброс идёт от 64 знаков до 4 096.
Ниже собрана таблица по всем полям, с которыми обычно работает редактор и разработчик бота. Отдельно разбираем случаи, где Telegram считает не символы, а байты. Там кириллица расходует лимит вдвое быстрее.
Проверить готовый текст можно за несколько секунд: вставьте его в счётчик символов и сравните значение с пробелами с нужной строкой таблицы.
Таблица лимитов Telegram
| Поле | Лимит | Источник |
|---|---|---|
| Текстовое сообщение | 4 096 символов | Bot API |
| Подпись к фото, видео, документу | 1 024 символа | Bot API |
| Название канала или группы | 128 символов | Клиент |
| Описание канала или группы | 255 символов | Клиент |
| Био профиля | 70 символов | Клиент |
| Био профиля, Premium | 140 символов | Клиент |
| Имя пользователя | 64 символа | Клиент |
| Фамилия | 64 символа | Клиент |
| Username (@) | 5–32 символа | Клиент |
| Вопрос опроса | 300 символов | Bot API |
| Вариант ответа в опросе | 100 символов | Bot API |
| Пояснение к ответу в квизе | 200 символов | Bot API |
| Текст inline-кнопки | 64 байта | Bot API |
| callback_data кнопки | 64 байта | Bot API |
| Описание бота | 512 символов | Bot API |
| Короткое описание бота | 120 символов | Bot API |
| Команда бота | 32 символа | Bot API |
| Описание команды | 256 символов | Bot API |
Строки с пометкой «Bot API» зафиксированы в официальной документации и меняются редко. Значения с пометкой «Клиент» наблюдаются в приложении и могут отличаться между версиями на iOS, Android и в вебе.
Сообщение и подпись к медиа считаются отдельно
Это главная причина ошибок при отложенной публикации. Отдельное сообщение принимает 4 096 знаков, а подпись к фотографии только 1 024. Разница в четыре раза.
Автор пишет пост на 2 000 символов, всё проходит. Потом добавляет обложку, и планировщик отвечает ошибкой. Текст не изменился, но поле стало другим. Из text он превратился в caption.
Обходятся двумя способами. Короткий текст оставляют подписью к картинке, тогда он пересылается одним блоком вместе с изображением. Длинный материал отправляют отдельным сообщением, а медиа ставят следующим. Выбор зависит от того, важна ли пересылка единым куском.
Учтите ещё, что в ленте виден не весь текст. Telegram сворачивает длинные сообщения примерно после 3–4 строк и показывает кнопку разворота. Технический лимит в 4 096 знаков и удобная длина поста различаются.
Где считаются байты, а не символы
Три поля в Bot API ограничены байтами: текст inline-кнопки, callback_data и switch_inline_query. Документация формулирует это как «64 bytes».
Кириллица в UTF-8 занимает два байта на букву. Значит, в кнопку помещается не 64 русских символа, а 32. Эмодзи расходует четыре байта, а составной до одиннадцати.
| Что в кнопке | Символов | Байт |
|---|---|---|
Order now |
9 | 9 |
Оформить заказ |
14 | 27 |
Оформить заказ 🛒 |
16 | 32 |
Практическое правило для русских интерфейсов: держите подписи кнопок в пределах 25–28 символов. Это оставляет запас на эмодзи и не упирается в лимит.
С callback_data строже. Туда часто кладут идентификаторы вида order:12345:confirm. Латиница и цифры занимают байт на знак, поэтому 64 байта дают ровно 64 символа. Но если в данные попадает русский текст, лимит срабатывает вдвое раньше, а бот падает с ошибкой BUTTON_DATA_INVALID. Разбор таких ситуаций собран в статье про ошибки разработки Telegram-ботов.




