Telegram Scraper
Pricing
from $1.00 / 1,000 results
Telegram Scraper
Seamlessly extract public messages from any Telegram public channel and gain valuable insights. Perfect for researchers, marketers, and data analysts.
Pricing
from $1.00 / 1,000 results
Rating
4.6
(7)
Developer
codemaster devops
Maintained by CommunityActor stats
30
Bookmarked
1.1K
Total users
8
Monthly active users
a month ago
Last modified
Categories
Share
🚀 Telegram Channel Scraper
Scrape public Telegram channels with enterprise-friendly flexibility. The actor now supports post ID ranges, date ranges, configurable post limits, and optional comment harvesting, all while capturing richer post metadata such as reactions and attachments.
🔧 Input Example
{"channels": ["mediumcom"],"maxCommentsPerPost": 10,"maxPostsPerChannel": 10,"postsFrom": 10,"postsTo": 20,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"includeComments": false}
📝 Input Parameters
| Parameter | Type | Description |
|---|---|---|
channels | array | List of public channel usernames (e.g. ["mediumcom"]). |
postsFrom | integer | (Optional) Minimum post ID to consider (channels start at 1). |
postsTo | integer | (Optional) Maximum post ID (set to 0/omit to ignore). |
maxPostsPerChannel | integer | Caps the number of posts processed per channel (default 200). |
fromDate | string | (Optional) ISO timestamp – collect posts on/after this moment. |
toDate | string | (Optional) ISO timestamp – collect posts on/before this moment. |
includeComments | boolean | When enabled, fetches the public comment thread for each post (if available). |
maxCommentsPerPost | integer | Maximum number of comments captured per post (default 100). |
proxy | object | Proxy settings – RESIDENTIAL proxies strongly recommended/required. |
navigationTimeoutSecs | integer | Timeout per HTTP fetch in seconds (default 120). |
You can mix-and-match ID ranges, date filters, and maximum post counts to control the crawl scope precisely.
📤 Output Example
[{"id": 18,"channelName": "mediumcom","channelTitle": "Medium","authorName": "Medium / Medium.com","authorTelegram": "https://t.me/mediumcom","date": "2024-01-05T12:24:33+00:00","viewsCount": "15","text": "https://journal.thriveglobal.com/look-for-people...","linkPreview": "Thrive Global\n\n“Look For People Who Need You...”","reactions": [{"emoji": "👍","count": 42,"countDisplay": "42"}],"attachments": [{"type": "tgme_widget_message_photo","caption": "Image caption","url": "https://t.me/..."}],"commentsCount": "3","commentsCollected": 3,"comments": [{"authorName": "Jane Doe","authorTelegram": "https://t.me/janedoe","date": "2024-01-05T13:00:00+00:00","text": "Great update!"}]}]
📋 Output Fields
| Field | Type | Description |
|---|---|---|
id | integer | Message ID. |
channelName | string | Channel username. |
channelTitle | string | Channel title (when available). |
channelDescription | string | Channel description text (first listing hit). |
subscribersText | string | Subscriber counter text from Telegram (if visible). |
authorName | string | Author display name. |
authorTelegram | string | Link to the author/channel. |
date | string | ISO 8601 timestamp. |
viewsCount | string | View counter displayed by Telegram. |
text | string | Message body text. |
linkPreview | string | Link preview text. |
reactions | array | Emoji reactions with numeric counts. |
attachments | array | Metadata for attached media (type, caption, url). |
commentsCount | string | Comment counter Telegram shows on the post. |
comments | array | Collected comments (author, link, date, text) when enabled. |
commentsCollected | integer | How many comments were captured for this post. |
💡 How to Use
- Specify channels – supply the public usernames you want to scrape.
- Choose your range strategy – mix ID limits, date filters, and
maxPostsPerChannelto bound the crawl. - Toggle comments – enable
includeComments(and tunemaxCommentsPerPost) to add discussion threads. - Configure proxies – use Apify RESIDENTIAL or your own high-quality proxies for consistent access.
- Run the actor – monitor the logs for skipped/blocked content and adjust parameters as needed.
🛠️ Tips & Tricks
- Combine date filters with
maxPostsPerChannelto collect recent activity without guessing IDs. - When you do rely on IDs, start with humane limits (e.g. first 50 posts) and expand gradually.
- A handful of messages require the official Telegram app and will be skipped – the actor logs them.
- Respect Telegram policies: throttling retries and using residential IPs dramatically improves success rates.
🔗 Connect With Us
- 🌐 Blog: Quick Life Solutions
- 📺 YouTube: CodeMaster-421
- 📸 Instagram: @quicklifesolutionsofficial
- 🗓️ Free Consultation: Book a call
- 🛠️ More Tools: Explore our Apify actors
🆘 Support
- 💬 Discord: Raise a support ticket
- 📧 Email: codemasterdevops@gmail.com
Happy scraping! 😎🧹✨