Asosiy kontentga o‘tish
Innovialabs

Telegram Bot API cheklovlari: xabarlar, fayllar va so‘rovlar limiti

Asoslar3 daq

Qisqacha

Telegram bitta chatga soniyasiga 1 tadan, guruhga daqiqasiga 20 tadan ko‘p bo‘lmagan va jami soniyasiga taxminan 30 ta xabar yuborishni tavsiya qiladi; bot 20 MB gacha fayl yuklab oladi, 50 MB gacha yuklaydi, matn 4096 belgigacha, tezlik oshsa retry_after bilan 429 xatosi keladi.

Asosiy limitlar bitta jadvalda

Telegram yo‘l-yo‘riqlarni rasmiy Bot FAQ va Bot API hujjatlarida e’lon qiladi. Aniq chegaralar o‘zgarishi va yuklamaga bog‘liq bo‘lishi mumkin, shuning uchun ularni kafolat emas, xavfsiz yuqori chegara deb qabul qiling.

Nima cheklanganLimit
Bitta chatga xabarlarsoniyasiga taxminan 1 ta (qisqa sakrashlarga yo‘l qo‘yiladi)
Bitta guruhga xabarlardaqiqasiga 20 tadan ko‘p emas
Ommaviy tarqatishjami soniyasiga taxminan 30 ta xabar
Botning faylni yuklab olishi (getFile)20 MB gacha
Botning faylni yuklashi50 MB gacha, rasm — 10 MB gacha
Faylni URL orqali yuborishrasm 5 MB gacha, qolgani 20 MB gacha
Xabar matni4096 belgi
Media izohi (caption)1024 belgi
callback_data64 bayt
answerInlineQuery dagi natijalar50 ta
Albomdagi media2 tadan 10 tagacha
Olinmagan yangilanishlarni saqlash24 soatgacha

Tezroq tarqatish uchun Telegram’da allow_paid_broadcast parametri orqali Telegram Stars evaziga pullik tarqatish bor. Shartlarini amaldagi hujjatlardan tekshiring.

429 xatosi va retry_after

Bot limitdan oshganda API HTTP 429 Too Many Requests qaytaradi. Javobda parameters.retry_after maydoni bo‘ladi — necha soniya kutish kerakligi.

To‘g‘ri munosabat:

  1. Shu chatga (agar limit global bo‘lsa, butun navbatga) yuborishni to‘xtatish.
  2. Aynan retry_after soniya kutish.
  3. So‘rovni takrorlash.

Noto‘g‘ri munosabat — darhol siklda qayta urinish. Bu bloklashni uzaytiradi va qattiqroq cheklovlarga olib kelishi mumkin.

import asyncio
from aiogram.exceptions import TelegramRetryAfter

async def safe_send(bot, chat_id, text):
    while True:
        try:
            return await bot.send_message(chat_id, text)
        except TelegramRetryAfter as e:
            await asyncio.sleep(e.retry_after)

Botni limitlarga moslab loyihalash

Yuborish navbati. Barcha chiquvchi xabarlar tezligi cheklangan bitta navbatdan o‘tadi: soniyasiga umumiy limit va har bir chat uchun alohida interval. Shunda buyurtmalarning keskin oshishi xatolar to‘lqiniga aylanmaydi.

Tarqatish — alohida jarayonda. Ommaviy yuborishni fon vazifasi sifatida ishga tushiring: u pauzalar bilan qismlab ishlasin va jarayonni saqlab borsin. Jarayon yiqilsa, tarqatish takroriy xabarlar bilan boshidan emas, to‘xtagan joyidan davom etadi.

403 ni qayta ishlash. Foydalanuvchilar botni bloklaydi. 403 Forbidden javobi bu odamga endi yozib bo‘lmasligini bildiradi: uni bazada belgilang va keyingi tarqatishlardan chiqaring.

Uzun matnlar. Ularni so‘z yoki razmetka o‘rtasidan emas, xatboshi chegaralari bo‘yicha 4096 belgidan kichik qismlarga bo‘ling. Rasm izohi 1024 belgi bilan cheklanganini unutmang.

Fayllar. Faylni bir marta yuklagach, uning file_id sini saqlang va qayta shu orqali yuboring — bu tezroq va trafikni tejaydi. Standart limitlardan katta fayllar kerak bo‘lsa, o‘zingizning Local Bot API Serveringizni ko‘tarish mumkin: u yuklab olish limitini olib tashlaydi va 2000 MB gacha fayl yuklashga ruxsat beradi.

Yangi xabar o‘rniga tahrirlash. Jarayon, statuslar va menyularni editMessageText orqali yangilang: xabarlar kamroq bo‘lsa, bitta chat limitiga urilish xavfi ham kamroq.

Xabarlarni o‘chirish. Guruhlarda bot xabarlarni yuborilganidan keyin faqat 48 soat ichida o‘chira oladi, chatni avtomatik tozalashni shuni hisobga olib rejalashtiring.

Keng tarqalgan xatolar

  • Butun baza bo‘ylab pauzalarsiz va 429 ni hisobga olmasdan oddiy sikl bilan tarqatish.
  • Bitta amalga javoban bitta xabar o‘rniga ketma-ket bir nechta xabar yuborish.
  • file_id o‘rniga bir xil faylni qayta-qayta yuklash.
  • callback_data da katta ma’lumotlarni saqlash — limit 64 bayt.
  • Standart API foydalanuvchining 100 MB lik videosini yuklab oladi deb kutish.

Ko‘p beriladigan savollar

Ehtimol, bitta chat yoki guruh limiti ishlagan: bitta foydalanuvchiga ketma-ket bir nechta xabar yoki guruhga daqiqasiga 20 tadan ko‘p xabar. Tezlikni faqat global emas, har bir chat uchun ham cheklang.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.