ReelspanUpload guidesTelegram

Post to Telegram automatically

Connect Telegram once, then send videos, photos, text posts and PDFs to it from code, a workflow or an AI agent. The same call can post to every other network at the same time.
2 min setup4,096 characters9:1616:91:17 sections

01

Connect Telegram

  1. Open @BotFather in Telegram, send /newbot and copy the bot token.
  2. Add the bot to your channel or group as an admin that can post.
  3. In the dashboard, paste the token and the channel (@name, or the -100… id of a private one).

Posting for clients? Send them a connect link so they connect their own Telegram account without a Reelspan login.

02

Get an API key

In the dashboard, open Developers → API keys and create one. Keep it in an environment variable such as REELSPAN_KEY; never in code you share.

03

Post with one request

Send the video as a file, or as a public URL like below. Add more platform[] fields to post the same thing everywhere at once.

curl
curl -X POST https://api.reelspan.com/v1/posts/video \
  -H "Authorization: Bearer $REELSPAN_KEY" \
  -F user=my-brand \
  -F "platform[]=telegram" \
  -F "video=https://example.com/clip.mp4" \
  -F "title=Your message" \
  -F "telegram_parse_mode=…"
JavaScript (Node 18+)
const form = new FormData();
form.append('user', 'my-brand');
form.append('platform[]', 'telegram');
form.append('video', 'https://example.com/clip.mp4');
form.append('title', 'Your message');

const res = await fetch('https://api.reelspan.com/v1/posts/video', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.REELSPAN_KEY}` },
  body: form,
});
console.log(await res.json());
Python
import os, requests

res = requests.post(
    "https://api.reelspan.com/v1/posts/video",
    headers={"Authorization": f"Bearer {os.environ['REELSPAN_KEY']}"},
    files=[
        ("user", (None, "my-brand")),
        ("platform[]", (None, "telegram")),
        ("video", (None, "https://example.com/clip.mp4")),
        ("title", (None, "Your message")),
    ],
)
print(res.json())

telegram_title sets the text for Telegram only, when it should differ from the other networks’.

04

Telegram options

telegram_parse_mode
HTML, MarkdownV2 or Markdown formatting.
telegram_disable_notification
Post silently.
telegram_has_spoiler
Blur the media until tapped.
telegram_as_document
Send the file uncompressed.
  • Posts go to your channels and groups through your own bot.
  • Captions under a video, photos or a PDF hold 1,024 characters; files up to 50 MB.

Every field, with its limits: the docs.

05

Schedule it and check the result

  • Add scheduled_date (ISO 8601) and timezone to post later, or add_to_queue=true to take the next slot of your posting schedule.
  • The response has Telegram’s status and the post’s link. For big files send async_upload=true and check GET /v1/posts/status?request_id=…, or get a signed webhook when it’s live.
  • If Telegram refuses a post, the error says why in plain words, and you can retry just that network.

06

Without code

07

Ideas

  • Send every new video to your channel as it goes live elsewhere.
  • Post PDFs and reports to a group.

More on Telegram: what you can post there. Other networks: all upload guides.

Questions?Talk to a person.Contact us