Telegram Bot API
🌐 English

postStory

Category: Stories · Bot API 10.3 · Official documentation

Posts a story on behalf of a business account.

Returns: On success, returns Story.

Parameters

ParameterTypeRequiredDescription
business_connection_idStringYesBusiness connection ID
contentInputStoryContentYesJSON InputStoryContent object
active_periodIntegerYesActive period in seconds: 21600, 43200, 86400 or 172800
captionStringOptionalCaption (0-2048)
parse_modeStringOptionalHTML, Markdown, MarkdownV2
caption_entitiesArray of MessageEntityOptionalJSON MessageEntity array
areasArray of StoryAreaOptionalJSON StoryArea array
post_to_chat_pageBooleanOptionalPost to chat page
protect_contentBooleanOptionalProtect content

Parameter descriptions are concise summaries; see the official documentation for the full text.

Example request

curl

curl -s -X POST "https://api.telegram.org/bot$TOKEN/postStory" \
  -H "Content-Type: application/json" \
  -d '{
  "business_connection_id": "BUSINESS_CONNECTION_ID",
  "content": {
    "type": "photo",
    "photo": "attach://photo"
  },
  "active_period": 86400
}'

Python

import requests

TOKEN = "123456789:AAEexampleTokenReplaceWithYours"
resp = requests.post(
    f"https://api.telegram.org/bot{TOKEN}/postStory",
    json={
        "business_connection_id": "BUSINESS_CONNECTION_ID",
        "content": {
            "type": "photo",
            "photo": "attach://photo"
        },
        "active_period": 86400
    },
    timeout=30,
)
print(resp.json())

JavaScript

const TOKEN = "123456789:AAEexampleTokenReplaceWithYours";
const res = await fetch(`https://api.telegram.org/bot${TOKEN}/postStory`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "business_connection_id": "BUSINESS_CONNECTION_ID",
    "content": {
      "type": "photo",
      "photo": "attach://photo"
    },
    "active_period": 86400
  }),
});
console.log(await res.json());

Step-by-step guide: How to Create a Telegram Bot: Step by Step with BotFather and Python