Telegram bot webhook Update payload example

Telegram Bot API · event: Update (message) · content type: application/json

This is a representative sample — fake IDs, real structure. To see a payload with your data, point the provider at a capture URL (button below).

See it live, not frozen

One click creates a free capture bin with this exact payload already in it — pretty-printed, headers inspectable, replayable to your own endpoint:

Then paste the bin's URL into Telegram Bot API's webhook settings to capture a real delivery. No signup.

Headers

content-type: application/json
x-telegram-bot-api-secret-token: my-webhook-secret-1

Body

{
  "update_id": 903761024,
  "message": {
    "message_id": 517,
    "from": {
      "id": 5216849302,
      "is_bot": false,
      "first_name": "Ada",
      "username": "ada_lovelace",
      "language_code": "en"
    },
    "chat": {
      "id": 5216849302,
      "first_name": "Ada",
      "username": "ada_lovelace",
      "type": "private"
    },
    "date": 1787990000,
    "text": "/start",
    "entities": [
      {
        "offset": 0,
        "length": 6,
        "type": "bot_command"
      }
    ]
  }
}

Things that bite people

Send it yourself

Reproduce this delivery against any endpoint (your handler, a bin, staging):

$ curl -X POST https://your-endpoint.example/hook \
  -H 'content-type: application/json' \
  -H 'x-telegram-bot-api-secret-token: my-webhook-secret-1' \
 -d '{"update_id":903761024,"message":{"message_id":517,"from":{"id":5216849302,"is_bot":false,"first_name":"Ada","username":"ada_lovelace","language_code":"en"},"chat":{"id":5216849302,"first_name":"Ada","username":"ada_lovelace","type":"private"},"date":1787990000,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}'

← All payload examples · Related guide · Signature debugger · Docs