Telegram

Post to Telegram via API — Channels, Groups, Albums

Publish text, photos, videos, and 10-item albums to Telegram channels and groups via your own bot. No OAuth bureaucracy — create a bot in @BotFather, paste the token, post. Cross-post to all 10+ platforms in one API call.

Get Started FreeNo credit card required

Telegram API controls

Bot API native — text messages, photos, videos, albums, silent send.

Text messagespost_type: text

Plain text posts up to 4,096 characters — the longest among major social platforms. Markdown / HTML formatting supported via the underlying Bot API.

Photo postspost_type: image

Send a single image with a 1,024-character caption, or post 2–10 images as an album with one caption on the first item.

Video postspost_type: video

Upload videos up to 50 MB through the Bot API (1 hour max) with streaming support and an optional 1,024-char caption.

Album (mixed media)telegram_media_urls

Pass up to 10 photos/videos in telegram_media_urls and CodivUpload sends them as a sendMediaGroup album — Telegram's native carousel.

Silent sendtelegram_disable_notification

Publish without pushing a notification to subscribers. The message still appears in the chat — useful for off-peak posts on large channels.

API Example

Telegram photo album with caption

Send 2-10 photos as a native Telegram album. The caption attaches to the first item; silent send skips push notifications for off-peak posts on large channels.

telegram-album.sh
# Post a 3-photo album to Telegram
curl -X POST \
  https://api.codivupload.com/v1/posts \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
    "profile_name": "my-channel",
    "platforms": ["telegram"],
    "post_type": "image",
    "description": "Behind the scenes from today's shoot 📸",
    "media_urls": [
      "https://cdn.example.com/shot-1.jpg",
      "https://cdn.example.com/shot-2.jpg",
      "https://cdn.example.com/shot-3.jpg"
    ],
    "telegram_disable_notification": true
  }'
Setup

Getting Started with Telegram

Telegram doesn't use OAuth. Each user runs their own bot, which means you control the integration end-to-end — there's no platform-approval queue, no scope-review back-and-forth. Three steps total.

Step 1 — Create the bot. Open Telegram and message @BotFather. Send /newbot, choose a display name, and pick a username ending in bot. BotFather replies with a token like 123456789:ABCdef… — copy it.

Step 2 — Add the bot to your chat as admin. Open your channel or group settings, go to Administrators > Add Administrator, search for your bot's username, and grant it at least Post Messages permission. For groups, the same Add Admins flow applies.

Step 3 — Connect in CodivUpload. Open the Profiles page, click Connect Telegram, paste the bot token, and provide the chat ID. For public channels, the chat ID is just @channelusername. For private channels or supergroups, it's a numeric ID starting with -100 (easiest way to find it: forward a message from the chat to @userinfobot).

CodivUpload validates the token by calling getMe and verifies bot access to the target chat via getChat before saving. The token is encrypted at rest (AES-256-GCM) and only decrypted in-memory when a post is being published. You can revoke at any time by either deleting the connection in the dashboard or regenerating the bot token in BotFather (/revoke).

Content Tips

Telegram Content Tips

Telegram channels reward depth, not frequency. The platform has no algorithm — every subscriber sees every post chronologically. That changes the optimal strategy completely: instead of posting often to fight feed decay, you post when you genuinely have something worth your audience's push notification.

Long-form is welcome. 4,096 characters is enough for a real essay. Where Twitter forces compression and Instagram favours visual hooks, Telegram subscribers are often there specifically because they want substance. Lead with the insight, not the engagement bait. Use empty lines for paragraph breaks — Telegram renders them generously.

Albums tell stories. The 10-image sendMediaGroup is one of the most underused features. Use it for tutorial walkthroughs, behind-the-scenes sets, before/after comparisons, or weekly recaps. Telegram renders the album inline; subscribers swipe through without leaving the chat.

Silent send for daily roundups. Large channels that post several times a day risk push-notification fatigue. Use telegram_disable_notification: true for secondary posts and reserve the push for high-signal updates. Subscribers see everything in the channel; only the priority items wake their phone.

Cross-post strategically, not lazily. A 2,200-char Instagram caption posted verbatim to Telegram looks lazy. Use the telegram_text override to write a Telegram-specific version that fully uses the longer limit and matches the channel's tone — long-form essay, technical writeup, or community-only context.

Public-channel links matter. Posts to public channels (with a @username) get permalink URLs like t.me/yourchannel/123. CodivUpload stores these and exposes them in the post_destinations response — useful for cross-promoting Telegram posts on Twitter or LinkedIn after publish.

Scheduled Post

Telegram via API — scheduled long-form

Schedule a long-form text post for your Telegram channel. CodivUpload queues it and dispatches via Bot API sendMessage at the exact scheduled time.

telegram-scheduled.sh
# Schedule a Telegram text post
curl -X POST \
  https://api.codivupload.com/v1/posts \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
    "profile_name": "dev-updates",
    "platforms": ["telegram"],
    "post_type": "text",
    "description": "This week shipped: PDF export, scheduled retries, and a 60% smaller webhook payload. Full changelog in the next post.",
    "telegram_disable_link_preview": true,
    "scheduled_date": "2026-05-14T09:00:00Z"
  }'

Start posting to Telegram for free

2 profiles, 10 uploads/mo on the free plan. Upgrade for unlimited.

Get Started Free

Telegram API questions