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.
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.