Telegram Bot API
by @ivangdavila
Build Telegram bots with correct API calls, message formatting, keyboards, and webhook setup.
clawhub install telegram-bot-apiπ About This Skill
name: Telegram Bot API slug: telegram-bot-api version: 1.0.0 homepage: https://clawic.com/skills/telegram-bot-api description: Build Telegram bots with correct API calls, message formatting, keyboards, and webhook setup. metadata: {"clawdbot":{"emoji":"π€","requires":{"bins":["curl"]},"os":["linux","darwin","win32"]}}
Setup
On first use, read setup.md for integration guidelines.
When to Use
User needs to interact with the Telegram Bot API. Building bots, sending messages, handling updates, setting up webhooks, creating keyboards, or managing bot commands.
Architecture
Memory lives in ~/telegram-bot-api/. See memory-template.md for structure.
~/telegram-bot-api/
βββ memory.md # Bot tokens, preferences, defaults
βββ bots/ # Per-bot configurations
β βββ {botname}.md # Token, webhook URL, defaults
βββ templates/ # Reusable message templates
Quick Reference
| Topic | File |
|-------|------|
| Setup process | setup.md |
| Memory template | memory-template.md |
| All API methods | methods.md |
| Message formatting | formatting.md |
| Keyboards & buttons | keyboards.md |
| Webhooks & polling | webhooks.md |
| Media handling | media.md |
| Error codes | errors.md |
Core Rules
1. API Base URL
All requests go to:https://api.telegram.org/bot{TOKEN}/{METHOD}
Never expose the token in logs or user-visible output.2. Required Parameters by Method
| Method | Required | Optional (common) | |--------|----------|-------------------| | sendMessage | chat_id, text | parse_mode, reply_markup, disable_notification | | sendPhoto | chat_id, photo | caption, parse_mode | | sendDocument | chat_id, document | caption, thumbnail | | getUpdates | β | offset, limit, timeout | | setWebhook | url | certificate, max_connections | | deleteWebhook | β | drop_pending_updates | | getMe | β | β |
3. Parse Mode Selection
| Format | Use when | Escape chars |
|--------|----------|--------------|
| MarkdownV2 | Rich formatting needed | _*[]()~\>#+-=|{}.! |
| HTML | Complex nesting, safer | <>& |
| None | Plain text only | None |
Default to HTML β fewer escape issues than MarkdownV2.
4. Chat ID Types
| Type | Format | Example |
|------|--------|---------|
| User | Positive integer | 123456789 |
| Group | Negative integer | -123456789 |
| Supergroup/Channel | -100 prefix | -1001234567890 |
5. Rate Limits
| Scope | Limit | |-------|-------| | Same chat | 1 msg/sec | | Different chats | 30 msg/sec | | Groups | 20 msg/min per group | | Bulk notifications | Use sendMessage with different chat_ids |
When hitting 429 errors, use exponential backoff starting at retry_after seconds.
6. Message Length Limits
| Type | Limit | |------|-------| | Text message | 4096 chars | | Caption | 1024 chars | | Callback data | 64 bytes | | Inline query | 256 chars |
Split long messages at sentence boundaries, not mid-word.
7. Keyboard Best Practices
Inline keyboards (in message):
for bot actions for external linksReply keyboards (below input):
to hide after use for better mobile UXCommon Traps
External Endpoints
| Endpoint | Data Sent | Purpose | |----------|-----------|---------| | https://api.telegram.org/bot{TOKEN}/* | Messages, media, commands | All bot operations |
No other data is sent externally. Bot token is required for all requests.
Security & Privacy
Data that leaves your machine:
Data that stays local:
This skill does NOT:
Trust
By using this skill, data is sent to Telegram's Bot API servers. Only install if you trust Telegram with your bot's messages.
Related Skills
Install with clawhub install if user confirms:
api β REST API best practices
http β HTTP protocol essentials
json β JSON parsing and manipulationFeedback
If useful: clawhub star telegram-bot-api
Stay updated: clawhub sync`
β‘ When to Use
User needs to interact with the Telegram Bot API. Building bots, sending messages, handling updates, setting up webhooks, creating keyboards, or managing bot commands.
βοΈ Configuration
On first use, read setup.md for integration guidelines.