Telegram Channel Scraper (Public Posts, No Login)
Pricing
from $1.00 / 1,000 message scrapeds
Telegram Channel Scraper (Public Posts, No Login)
Scrape public Telegram channel posts: text, date, views, links, hashtags, media URLs. No login or API keys. Pay per message.
Pricing
from $1.00 / 1,000 message scrapeds
Rating
0.0
(0)
Developer
Andok
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Telegram Channel Scraper
Scrape posts from any public Telegram channel without a Telegram account, API ID, or login. Give it channel usernames or t.me links and get structured JSON: post text, date, view count, links, hashtags, mentions, photo/video URLs, forward and reply info, and link previews. Built for OSINT, crypto and news monitoring, brand mentions, and feeding RAG / LLM pipelines.
It reads Telegram's public web preview (t.me/s/<channel>), so only channels with the preview enabled can be scraped. Private channels, groups and chats are not supported.
Features
- No login, no API keys — plain HTTP, fast and cheap
- Flexible input —
durov,@durov,https://t.me/durov,https://t.me/s/durov - Deep history — paginates back up to 5,000 messages per channel
- Date and keyword filters — stop at
sinceDate; keyword-filtered messages are never billed - Rich output — views, links, hashtags, mentions, media URLs, forwards, replies, polls flag, link previews
- Channel info record — title, description, subscribers, photo/video/link counts (free)
- Pay per message — see pricing below
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
channels | string[] | Yes | — | Usernames, @handles, or t.me links |
maxMessagesPerChannel | integer | No | 100 | Newest-first cap per channel (1–5000) |
sinceDate | string | No | — | Stop at posts older than this (YYYY-MM-DD or ISO 8601) |
keywords | string[] | No | — | Only return messages containing any keyword (case-insensitive) |
includeChannelInfo | boolean | No | true | Add one free channel record per channel |
includeHtml | boolean | No | false | Include the formatted HTML of each message |
{"channels": ["telegram", "https://t.me/durov"],"maxMessagesPerChannel": 200,"sinceDate": "2026-01-01","keywords": ["bitcoin", "airdrop"]}
Output
Every dataset item has a recordType: message, channel, or error.
{"recordType": "message","channel": "telegram","messageId": 460,"url": "https://t.me/telegram/460","date": "2026-08-26T19:12:34+00:00","text": "For all the info from today's update ...","views": 1960000,"isForwarded": false,"forwardedFrom": null,"replyToMessageId": null,"links": ["https://telegram.org/blog/welcome-messages-buttons-TG-13"],"hashtags": [],"mentions": [],"photoUrls": [],"videoUrls": [],"linkPreview": { "url": "https://telegram.org/blog/...", "title": "Welcome Messages, ...", "description": "...", "siteName": "Telegram" }}
channel records contain title, description, subscribers, photosCount, videosCount, linksCount. error records explain why a channel could not be read (private, no web preview, not found).
Pricing
Pay per event: $0.001 per message scraped plus a $0.001 start fee. Channel info and error records are free.
Example: 5 channels x 200 messages = 1,000 messages = about $1.00.
Limitations
- Only public channels with web preview enabled (
t.me/s/<name>); no groups, private chats, comments or reactions - View counts are rounded by Telegram for large numbers (e.g. 1.58M)
- Media is returned as CDN URLs; files are not downloaded
- Telegram may rate limit very aggressive use; the Actor retries with backoff
Legal
Scrapes only publicly visible data. You are responsible for complying with Telegram's Terms of Service and applicable privacy law (e.g. GDPR) when processing the data.
If this Actor saves you time, a quick review on the Store page helps a lot.