Telegram Channel Scraper
Pricing
from $1.00 / 1,000 messages
Telegram Channel Scraper
Export posts from public Telegram channels: text, views, reactions, media links and dates. No account, bot token or API key needed.
Pricing
from $1.00 / 1,000 messages
Rating
0.0
(0)
Developer
christopher tan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Export posts from any public Telegram channel into a spreadsheet, JSON, or your own app. No Telegram account, phone number, bot token, or API key required.
Press Start to see it work. The default input scrapes @telegram and @durov straight away.
What you get
One row per post, newest first, with the fields people actually ask for:
| Field | Example |
|---|---|
date | 2026-09-11T16:04:02+00:00 |
text | Full post text, emoji and line breaks preserved |
views | 688000 (also viewsRaw: "688K") |
totalReactions | 146385, plus a per-emoji breakdown |
url | https://t.me/durov/548 |
photoUrls / videoUrls | Direct media links |
linkPreview | Title, description, site name of any shared link |
forwardedFrom / replyToUrl | Where a forward or reply came from |
An optional summary row per channel carries the title, description, subscriber count, verified badge, and post/photo/video counts.
What people use it for
- Competitor and market monitoring. Track what rival channels publish and which posts actually land, using views and reactions.
- Feeding AI agents and RAG pipelines. Clean post text with dates and links, ready to embed. One call returns a whole channel history.
- News and OSINT research. Pull a dated archive of a channel's posts and filter to the window you care about.
- Crypto and trading signals. Watch call channels and capture every post with its timestamp.
- Content analytics. Find which posts, formats, and times get the most views in a niche.
- Backups. Keep a durable copy of a channel you rely on.
Input
| Setting | What it does |
|---|---|
| Telegram channels | Any format: telegram, @durov, t.me/durov, https://t.me/s/durov |
| Max messages per channel | Default 100. Paginates back through history as far as you ask. |
| Only messages after / before | Optional date window. The run stops early once it passes your start date, so you are not billed for history you did not want. |
| Include reactions | On by default |
| Include a channel summary row | On by default |
| Proxy | Off by default. Telegram is normally reachable without one. |
Bad input does not waste a run. A misspelled channel, a private invite link, or an unparseable date each produce a plain-English message, and the other channels in your list keep going.
Sample output
{"type": "message","requestedChannel": "durov","channel": "durov","messageId": 548,"url": "https://t.me/durov/548","date": "2026-09-11T16:04:02+00:00","text": "๐ค Telegram has become the sponsor of Codeforces โ the largest competitive programming platform...","authorName": "Pavel Durov","views": 688000,"viewsRaw": "688K","totalReactions": 146385,"reactions": [{ "emoji": "โค", "count": 73, "isPaid": false }],"mediaTypes": [],"links": ["https://codeforces.com/blog/entry/156620"],"linkPreview": {"url": "https://codeforces.com/blog/entry/156620","title": "Telegram Returns as Title Sponsor of Codeforces!","siteName": "Codeforces"}}
What it cannot do, and why
Being straight about this saves you a wasted run:
- Only public channels. If a channel has turned off its web preview, nothing can read it without a logged-in account. This Actor deliberately does not use one. You get a clear message saying so rather than an empty dataset.
- No private groups or invite links.
t.me/+...andt.me/joinchat/...are rejected up front. - No subscriber lists or member data. Telegram does not publish them, and this Actor does not attempt to collect personal data.
- View and reaction counts above 1,000 are rounded by Telegram itself (
"688K"). The exact figure is not published.viewsis the expanded number andviewsRawkeeps Telegram's original string so you can tell. - Custom emoji reactions have no text label on the web, so those rows carry
customEmojiIdinstead of an emoji character.
More tools from steadyfeeds
- Airbnb Listings Scraper โ Search Airbnb and export prices, ratings and coordinates.
- Airbnb Listing Details Scraper โ Full detail for a listing: amenities, rules, host and photos.
- Job Board Scraper โ Every open role from company career pages across eight systems.
- Events Scraper โ public events from Eventbrite, Meetup and Luma in one run.
Notes
Reads the same public pages you can open in a browser at t.me/s/<channel>. It collects channel content, not personal data.
Something broken or a field you need? Open an issue on this Actor and I will take a look.