Text Posts
Send text messages with supported HTML or Markdown formatting to Telegram.
Stop running your own bot, tracking numeric chat IDs, and escaping MarkdownV2 by hand. PostZen publishes to Telegram channels and groups through one simple endpoint - so you can focus on building your product.
No credit card required
import PostZen from '@postzen/node';
const postzen = new PostZen();
await postzen.posts.createPost({
body: {
content: 'Hello from Telegram!',
publishNow: true,
platforms: [{
platform: 'telegram',
accountId: 'your-telegram-chat-id',
}],
},
});WHY POSTZEN?
Telegram Bot API brings its own authentication, rate limits, media rules, and maintenance. PostZen replaces it with one predictable integration.

2.3M+ posts
2,000+ developersFEATURES
One complete API for Telegram formats, controls, and scheduled publishing

Send text messages with supported HTML or Markdown formatting to Telegram.
Publish images with captions directly to connected channels and groups.
Upload native videos or standalone GIFs without managing Telegram media calls.
Send albums containing up to ten photos and videos in one coordinated post.
Publish to any connected channel, group, or supergroup the shared bot can reach.
Schedule posts and configure supported silent-delivery or forward-protection options.
Three steps to integrate the Telegram Upload API

Sign up for PostZen and grab your API key from the dashboard.

Authorize your Telegram account once. We manage OAuth, permissions, and publishing access for you.

POST to /v1/posts with Telegram selected and your content or media. Done.
CODE EXAMPLE
One POST request to /v1/post — send a file or a public URL
const response = await fetch("https://api.postzen.dev/v1/posts", {
method: "POST",
headers: {
"Authorization": "Bearer POSTZEN_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
platforms: [{
platform: "telegram",
accountId: "your-telegram-account-id",
settings: { parseMode: "html", disableNotification: true }
}],
content: "<b>Release 2.4</b> is out. Read the notes at example.com/notes",
mediaItems: [{ url: "https://cdn.example.com/launch-image.jpg" }],
scheduledFor: "2026-06-15T19:00:00Z",
tags: ["launch", "telegram"]
})
});
const result = await response.json();
console.log("Scheduled successfully:", result.post._id);Still have questions?
No. PostZen uses one shared bot, @PostZenScheduleBot. There is no BotFather registration, no bot token to store, and no Telegram app review.
PostZen generates an access code that is good for 15 minutes. Add @PostZenScheduleBot as an administrator of the chat - with Post Messages enabled for a channel - then DM the bot your code. The connection appears in PostZen as soon as the bot confirms it.
In a channel, posts appear as the channel itself and readers never see the bot. In a group or supergroup, posts appear as @PostZenScheduleBot.
A text-only post allows 4,096 characters. Attach any media and that text becomes a caption capped at 1,024 characters. An album carries up to 10 items and can mix photos and videos; a GIF posts on its own.
Yes. Per-post settings cover silent delivery, disabling the link preview, and protecting content so Telegram blocks forwarding and saving. Text can be sent as plain text, HTML, or MarkdownV2.
No. Telegram's Bot API exposes no view, reach, or subscriber metrics for a post, so there is nothing for PostZen to report. Channel admins can still see per-message view counts inside the Telegram app.
Yes. Set a scheduledFor timestamp and PostZen publishes at the exact time. You can cross-post to X, Bluesky, LinkedIn, and other supported platforms in the same API call.
Join the 2,000+ developers who chose PostZen over building around disconnected platform tools. Same reliability, 10x less code.