Telegram Channel Scraper
Pricing
from $0.00005 / actor start
Telegram Channel Scraper
Scrape public Telegram channels without authentication. Extract messages, views, media, reactions, forwards, publish dates from any public channel. No API keys or phone number required — uses Telegram's public web preview (t.me/s/channel).
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Max Consta
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape public Telegram channels without authentication — no API ID, no API hash, no phone number, no session files. Uses Telegram's public web preview (t.me/s/channel) to extract messages, views, reactions, media URLs, forwards, polls, and link previews.
Why this actor?
Every other Telegram scraper on Apify Store requires you to provide a Telegram API ID + API hash and often a phone number, which creates two major problems:
- You need to set up a personal Telegram dev account.
- Your account gets flagged/banned for scraping activity.
This actor avoids both — it uses only public, unauthenticated endpoints. Trade-off: you can't scrape private channels, and message counts like exact views on very old messages may be approximations.
Features
- Zero credentials — no API keys, no phone number
- Full message data — text, views, date, author, forwards, replies
- Reactions — emoji + count for each reaction (including paid ⭐ reactions)
- Media extraction — photo URLs, video sources, documents, voice messages
- Polls — question + options
- Link previews — URL, title, description, site name
- Channel metadata — subscriber count, verified status, description
- Historical pagination — goes back in time via
?before=<msg_id>until the limit you set - Date filtering —
fromDate,toDateto narrow scope
Input
| Field | Type | Description |
|---|---|---|
channels | array | List of public channels — accepts @username, t.me/username, t.me/s/username |
maxMessagesPerChannel | integer | Stop after this many messages per channel |
fromDate | string | ISO date — skip messages older than this |
toDate | string | ISO date — skip messages newer than this |
includeMedia | boolean | Include media URLs in output |
proxyConfiguration | object | Optional — t.me rarely blocks, but useful for very high volume |
Example input
{"channels": ["@durov", "@telegram", "@breakingmash"],"maxMessagesPerChannel": 500,"fromDate": "2025-01-01","includeMedia": true}
Output
Each message:
{"channel": "durov","messageId": 497,"url": "https://t.me/durov/497","date": "2026-04-20T22:55:10+00:00","text": "France's Agency for Secure Documents was hacked...","author": "Pavel Durov","views": 713000,"isForwarded": false,"forwardedFrom": null,"replyToUrl": null,"photos": ["https://cdn4.telesco.pe/..."],"videos": [],"documents": [],"voices": [],"poll": null,"reactions": [{ "emoji": "⭐", "count": 4820, "paid": true },{ "emoji": "custom:5265077361648368841", "emojiId": "5265077361648368841", "count": 27600 }],"linkPreview": null,"hasMedia": false}
Pricing (Pay-per-result)
- $0.30 per 1000 messages extracted
Use cases
- Social listening — monitor brand/keyword mentions across dozens of channels
- News aggregation — pull latest posts from news channels into your own feed
- Crypto/finance — track announcements from project channels
- Market research — compare engagement (views, reactions) across channels
- Competitive intelligence — monitor competitor channels
- Dataset building — collect training data for NLP / sentiment analysis
Limitations
- Public channels only (groups and private channels are not supported)
- View counts for very old messages may be approximate (Telegram rounds them)
- Reaction emojis that use Telegram's custom emoji system come back as
custom:<emoji_id>— resolve via Telegram's Bot API if you need the visual emoji
Notes
Respect Telegram's Terms of Service and the laws in your jurisdiction. This actor reads the same public data anyone can see in a web browser.