Anonymous View

Webhook tester for Telegram bots

Test your bot's webhook handler with realistic Update payloads before going live. Pick a scenario, customise the fields, and copy the curl or Python command, or fire the request from your browser if your server accepts CORS.

Why this matters

Telegram's setWebhook is fire-and-forget. If your handler crashes on a specific update shape, you'll find out when a user reports that the bot stopped responding to button taps. This tool lets you replay every Update shape against your dev server before deploying, no user required.

Update types covered

messagePlain text message sent in DM.
callback_queryInline-button tap. Your handler must respond with answerCallbackQuery.
inline_queryUser typed @yourbot something in any chat. Reply with answerInlineQuery.
edited_messageUser edited a message in DM. Common gotcha, handlers built for message miss this.
channel_postNew post in a channel where the bot is admin.
my_chat_memberBot's permissions changed (added, removed, demoted). Your handler should record the new state.
chat_join_requestUser requested to join a chat with approval enabled.
pre_checkout_queryUser confirmed payment, you have 10 seconds to reply.

About browser fetch (CORS)

Most webhook endpoints don't allow cross-origin requests from a browser , they only expect calls from Telegram's IPs. If "Fire request" fails with a CORS or network error, use the curl or Python snippets from your local machine or dev server instead.

Secret token verification

If you set a secret token when calling setWebhook, Telegram adds the header X-Telegram-Bot-Api-Secret-Token to every request. The generated curl includes a placeholder for this, fill it in to test the secret-verification path of your handler.

Related tools