yeetpostyeetpost

How to sendfrom

Follow these steps to connect Telegram message, send from Python, and track delivery.

Telegram posting goes through a bot you own. You get a token from @BotFather, add the bot to your channel as an admin that can post messages, and give yeetpost the token and the channel. A connection is one channel rather than one bot, so a bot that is admin of three channels is three connections. From Python you call the HTTP endpoint with requests, in a script, a Django or FastAPI view, or a Celery task.

What Telegram takes

How you connectA bot token from @BotFather, plus the channel @handle or its numeric id starting -100
Connection slugtelegram for the first channel, then a slug built from the channel
Text limit4096 characters
Text limit with an image1024 characters, because the text becomes the photo's caption
ImagesUp to 5 per post, png and jpeg only
Alt textNo, Telegram has no field for it, so it is dropped
ThreadsYes, up to 24 replies under the head message
First commentNo, LinkedIn only
SchedulingYes
Permalinkhttps://t.me/<handle>/<message id>, or https://t.me/c/<internal id>/<message id> for a private channel
Per-post feeNone
1

Connect your platform

Connect a Telegram channel to yeetpost with a bot you own:

  1. Message @BotFather and send /newbot to get a bot token
  2. Add the bot to your channel as an admin with permission to post messages
  3. Go to app.yeetpost.com
  4. Click Add connection, select Telegram, and paste the token and the channel

The channel is either its public @handle or, for a private channel, the numeric id starting with -100. All three things are checked when you connect: that the token is real, that the chat is a channel rather than a group, and that the bot is an admin that can post.

Paste your connection slug here and we'll auto-fill it into the code examples below.

2

Get your API key

Get your API key from the yeetpost dashboard:

  1. Go to app.yeetpost.com/app/settings
  2. Copy your API key

Paste your API key here and we'll auto-fill it into the code examples below.

3

Send your post

Install the requests library:

pip install requests

Send a post:

import requests response = requests.post( "https://api.yeetpost.com/api/v2/post/<your-connection-slug>", headers={"x-api-key": "<your-api-key>"}, data="Hello from yeetpost!", ) print(response.json())

To post to several connections in one call, use the JSON endpoint. Read the per-connection status in results, not just the HTTP status:

import requests response = requests.post( "https://api.yeetpost.com/api/v2/posts", headers={"x-api-key": "<your-api-key>"}, json={ "text": "Hello from yeetpost!", "connectionSlugs": ["<your-connection-slug>"], }, ) for result in response.json()["results"]: print(result["connectionSlug"], result["status"])
4

Track your posts

Monitor all your posts from the yeetpost dashboard:

  1. Go to the Feed tab in the yeetpost dashboard
  2. View all posts sent via yeetpost, including status and timestamps
5

Review the security checklist

Review the Security Checklist to ensure your implementation is secure.

When a Telegram post is refused

Each of these fails only the Telegram item. Every other connection on the same request still goes out. The full vocabulary is in the errors reference.

CodeStatusWhen
invalid_request400Text over 4096 characters, or over 1024 with an image attached
media_unsupported400The image is not a png or a jpeg
shape_unsupported400A firstComment was given. Telegram has no first comment
unauthorized401The bot token was revoked. Connect again with the new one
platform_rejected422Telegram refused the message, for example the bot lost its admin rights
internal_server_error500Our fault. Quote the req_id when you report it

Telegram FAQ

Can I post to a Telegram group or to a person?

No. A connection has to be a channel. A group or a private chat is refused when you try to connect it, because the permalink shapes and the posting rules are not the same.

Why does my gif come back media_unsupported?

Telegram takes png and jpeg photos only. The check runs before the message is sent, so the same post still goes out to every other connection on it.

Why did my alt text disappear?

Telegram has no field for a photo description, so yeetpost drops it for this connection. The same description still travels to X, Bluesky, Mastodon and LinkedIn on the same post.

Why is my text refused at 2000 characters when the limit is 4096?

An image turns the text into the photo's caption, and a caption holds 1024 characters. Send the long text on its own, or move it into a reply.

Should I read the per-connection result in Python?

Yes. POST /api/v2/posts answers 200 with a results array, one entry per connection. Read result["status"] for each entry rather than trusting the HTTP status, because one connection can fail while the others go out.

Related guides

Related resources

Copy this guide (with your values) for use with LLMs or sharing with colleagues.