---
title: "Telegram API: post and schedule from code"
url: "https://get1post.com/developers/telegram.md"
canonical_url: "https://get1post.com/developers/telegram"
last_updated: "2026-10-26"
type: "reference"
summary: "Post and schedule to Telegram with the 1Post API and MCP server: the request, the reply, every rule it is checked against and a dry run."
related: ["https://get1post.com/platforms/telegram.md", "https://get1post.com/platforms/telegram/specs.md", "https://get1post.com/docs/api-posts.md", "https://get1post.com/docs/mcp.md"]
---

# Telegram API: post and schedule from code

Post and schedule to Telegram with the 1Post API and MCP server: the request, the reply, every rule it is checked against and a dry run.

Post to Telegram from code with one request: POST /v1/posts with your channel id, the text and a schedule_at time. Telegram text is limited to 4,096 characters, counted in UTF-16 units. 1Post allows up to 100 posts a day for each connected channel, and a dry run checks a post against every rule first.

## Connect Telegram first

1. Add the 1Post bot to your channel or group as an administrator, or create your own bot with BotFather.
2. Open Accounts in 1Post and choose Connect, then Telegram.
3. Enter the channel and, if you use your own bot, its token.
4. Choose the channel in the composer.

Then GET /v1/accounts returns the id of the Telegram channel to use in the request.

## Send a post to Telegram

**Schedule a post**

```bash
curl https://api.get1post.com/v1/posts \
  -H "Authorization: Bearer $ONEPOST_API_KEY" \
  -H "Idempotency-Key: telegram-first-post" \
  -d '{"accounts":["ACCOUNT_ID"],"text":"The update is live.","schedule_at":"2026-11-02T15:00:00Z"}'
```

The reply is 202 with the post (status scheduled) and one destination for Telegram, which moves from queued to published or failed.

## What you can send to Telegram

- Text
- Photo
- Video
- Album of 2 to 10 items

## What Telegram publishes

- A message holds 1 to 4096 characters, a caption up to 1024, and an album 2 to 10 items.

## Telegram rules the request is checked against

| Rule | What 1Post checks |
| --- | --- |
| Text limit | 4,096 characters, counted in UTF-16 units |
| Caption limit with media | 1,024 characters |
| Media accepted | Images, Video |
| Images per post | 10 |
| Videos per post | 10 |
| Carousel | 2 to 10 items |
| Threads | No |
| First comment | No |
| Posts per day, per connected account (1Post) | 100 |

The same table with sources is on the [Telegram specs page](https://get1post.com/platforms/telegram/specs.md).

## Check the post before it is queued

Add "dry_run": true to test a post: nothing is kept, a valid one answers 200 and a broken one answers 422 naming the rule.

**A refused request, abridged**

```json
{
  "error": {
    "code": "invalid_for_platform",
    "message": "telegram refuses this post: Telegram counts 4,128 of 4,096 characters in part 1. (text_too_long).",
    "fix": "Fix the rule named in the message and send the post again.",
    "retryable": false,
    "request_id": "REQUEST_ID"
  }
}
```

An assistant connected to the [MCP server](https://get1post.com/docs/mcp.md) sends the same fields to create_post; [set one up](https://get1post.com/assistants.md).

## Questions

**Can I post to Telegram with an API key?**

Yes. A key with write scope can create, change and cancel Telegram posts for the workspace it belongs to, with the role of the member who made it. See [API authentication](https://get1post.com/docs/api-authentication.md).

**What happens if a Telegram post breaks a rule?**

The request is refused with invalid_for_platform and the failing rule is named. Fix it and send the request again, or send it with dry_run to test the fix first.

**How many Telegram posts can I send in a day?**

Up to 100 for each connected channel. A request that would pass that answers daily_cap with the time the day frees up.

## Sources

- [Telegram Bot API](https://core.telegram.org/bots/api), read 2026-10-22

## Related

- [Schedule Telegram posts: formats, limits, setup](https://get1post.com/platforms/telegram.md)
- [Telegram specs and limits: text, media, daily cap](https://get1post.com/platforms/telegram/specs.md)
- [Creating and changing posts with the API: 1Post docs](https://get1post.com/docs/api-posts.md)
- [The MCP server: 1Post docs](https://get1post.com/docs/mcp.md)
