Docs

Reference

Post a story

Post a photo (JPEG) or video (MP4, ≤ 60 s, give duration/width/height) story for 24 hours from a file already uploaded to the account's outgoing folder; privacy everyone / contacts / close_friends; `pinned` keeps it on the profile afterwards. Caption ≤ 200 characters. Counts toward the 'Post story' daily limit. With `conversationId` (a channel / supergroup chat of the account, worker ≥ 1.0.33) the story is posted for that channel instead — always public; Telegram refuses with BOOSTS_REQUIRED / CHAT_ADMIN_REQUIRED when the channel lacks boosts or the account lacks the admin right.

View MarkdownThis page is generated from the source code on every release.

Post a photo (JPEG) or video (MP4, ≤ 60 s, give duration/width/height) story for 24 hours from a file already uploaded to the account's outgoing folder; privacy everyone / contacts / close_friends; pinned keeps it on the profile afterwards. Caption ≤ 200 characters. Counts toward the 'Post story' daily limit. With conversationId (a channel / supergroup chat of the account, worker ≥ 1.0.33) the story is posted for that channel instead — always public; Telegram refuses with BOOSTS_REQUIRED / CHAT_ADMIN_REQUIRED when the channel lacks boosts or the account lacks the admin right.

Overview

Name Value
Code stories.post
Scope needed profile.write
Risk Write
May need confirmation No
Runs as Queues work for a node
Needs Idempotency-Key Yes
Member roles allowed owner, manager
Needs a worker from version 1.0.29
In the app Accounts → Stories → Post story

Input fields

Field Type Required Description
accountId uuid Yes
storagePath text Yes
kind "photo" | "video" Yes
mime text Yes
caption text No
privacy "everyone" | "contacts" | "close_friends" Yes
pinned true/false No
video object No
conversationId uuid No

Example request

curl -X POST https://tlg.builera.app/api/public/v2/ops/stories.post \
  -H "Authorization: Bearer $TELEGRAM_AUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: <unique key per operation>" \
  -d '{"accountId":"00000000-0000-0000-0000-000000000000","storagePath":"…","kind":"photo","mime":"…","privacy":"everyone"}'

Output fields (data)

Field Type Required
ok true Yes
jobId text Yes

Example answer

{
  "data": {
    "ok": true,
    "jobId": "00000000-0000-4000-8000-000000000000"
  }
}

Using it over MCP

Not listed on any profile: call tools_describe then tools_run with code: "stories.post". Tool name when listed: stories_post.

Was this page helpful?

Last checked: 10/24/2026 · build 2.0