Telegram and Bluesky added to Postproxy

Postproxy now publishes to Telegram channels via your own bot and to Bluesky via app password — both behind the same posts API as the other eight platforms.

Telegram and Bluesky added to Postproxy
Quick answer

Postproxy now supports Telegram and Bluesky alongside the existing platforms. Telegram is a bring-your-own-bot integration — you create a bot via @BotFather and Postproxy publishes to any channel where it is administrator. Bluesky uses an app password instead of OAuth. Both share the same POST /api/posts endpoint as Instagram, X, LinkedIn, Facebook, TikTok, YouTube, Threads, and Pinterest.

What changed

Two new platforms are live behind the Postproxy API:

  • Telegram — publish to any Telegram channel (public or private) through a bot you control.
  • Bluesky — publish to the AT Protocol network using a Bluesky handle and app password.

Both are reachable through the same profiles array on POST /api/posts. No new endpoint, no separate SDK, no extra abstraction. The Initialize Connection flow now accepts "platform": "telegram" and "platform": "bluesky".

Why Telegram

Telegram channels are a primary distribution surface for product changelogs, dev communities, news outlets, trading and crypto groups, and indie creators. Until now, adding it meant maintaining a separate Bot API integration in-house — webhook setup, chat_id lookups, parse-mode quirks, media groups for albums.

Postproxy now handles all of that. One post call routes to every channel where your bot is administrator. The same idempotency, scheduling, retry, and status-tracking guarantees apply.

Why Bluesky

Bluesky has grown into a meaningful publishing target for technical audiences, journalists, and brands hedging against single-network risk. It is a natural sibling to X and Threads in most cross-posting setups.

Adding it directly meant implementing the AT Protocol auth flow, blob upload, and rich-text facet detection (mentions, links, tags). Postproxy now does it under the same profiles: ["bluesky"] flag.

How does Telegram authentication work?

Telegram has no consumer OAuth for posting. Each Postproxy Telegram profile represents one bot you create via @BotFather. You submit the bot token once; Postproxy validates it, registers a webhook with Telegram, and starts tracking channels where the bot is added as administrator.

Terminal window
curl -X POST "https://api.postproxy.dev/api/profile_groups/grp_abc123/initialize_connection" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "telegram",
"bot_token": "123456789:ABCdef-GhIJklMnOpQrStUvWxYz"
}'

A single Telegram profile can publish to many channels. Each channel surfaces as a placement, listed via GET /api/profiles/:id/placements, and the destination is selected per post through the chat_id parameter.

Full walkthrough: Connect Telegram with your own bot.

How does Bluesky authentication work?

Bluesky does not expose OAuth in the conventional sense. Initialize Connection authenticates synchronously with a handle and an app password (generated at bsky.app/settings/app-passwords) and returns the profile in one call — no redirect.

Terminal window
curl -X POST "https://api.postproxy.dev/api/profile_groups/grp_abc123/initialize_connection" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "bluesky",
"identifier": "yourname.bsky.social",
"app_password": "xxxx-xxxx-xxxx-xxxx"
}'

The .bsky.social suffix is optional. Custom PDS domains (e.g. you.example.com) are accepted as-is. Accounts protected by 2FA must use an app password — the main account password is rejected.

Publishing to both

The posts API is unchanged. Add telegram or bluesky to the profiles array:

Terminal window
curl -X POST "https://api.postproxy.dev/api/posts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post": {
"body": "We just shipped Telegram and Bluesky support. Same API, two new networks."
},
"profiles": ["twitter", "linkedin", "bluesky", "telegram"],
"media": ["https://example.com/launch.png"],
"platforms": {
"telegram": {
"chat_id": "-1001234567890",
"parse_mode": "HTML",
"disable_link_preview": true
}
}
}'

chat_id is the only required platform parameter on Telegram — every post must name an explicit destination channel. Bluesky takes no required parameters.

Platform-specific limits

Both networks come with their own constraints, validated by Postproxy before publishing:

ConstraintTelegramBluesky
Auth modelBring-your-own bot (BotFather token)App password (handle + password)
Character limit4,096300 graphemes
Image max size10 MB1 MB
Image formatsjpg, png, webp, gifjpg, png, webp, gif
Max images per post104
Video max size50 MB50 MB
Video duration1s – 60s
Mix images and videoYes (media group)No
Threads / repliesYes — sequential replies supported
FormattingHTML, MarkdownV2, plainPlain text (rich facets auto-detected)

See the full reference: Bluesky parameters · Telegram parameters.

Where these fit in a publishing pipeline

For teams already cross-posting through Postproxy, Telegram and Bluesky drop into the existing pattern:

  • Cross-posting. Add them to the same profiles array used for X, LinkedIn, Threads, and the rest. Different bodies per platform are supported via platforms.<network>.body overrides.
  • Scheduling. Both work with scheduled posts and posting queues. Telegram has no rate-limit quirks once your bot is admin; Bluesky’s PDS limits apply per-handle.
  • Drafts and approvals. Same draft and approval flow as every other network.
  • Status and retries. Identical post status lifecycle and retry policy. Telegram failures (bot kicked, channel deleted) surface as failed with structured errors.

Getting started

If you already have a Postproxy account:

  1. Generate a bot via @BotFather and copy the token. Call Initialize Connection with platform: "telegram", then add the bot as administrator to your channels.
  2. Generate a Bluesky app password. Call Initialize Connection with platform: "bluesky", your handle, and the app password.

Both flows are also available in the Postproxy dashboard under Profiles → Connect account.

For everyone else: there is no separate signup, no separate billing tier, no waitlist. Telegram and Bluesky are part of the same flat platform list. The unified posts API now covers ten networks.

Ready to get started?

Start with our free plan and scale as your needs grow. No credit card required.