Telegram Channel Scraper & Monitor
Pricing
from $0.35 / 1,000 posts
Telegram Channel Scraper & Monitor
Gets posts from public Telegram channels with views, media and links, plus channel stats. No login or phone number needed. Schedule it to monitor channels: each run returns only the posts that are new since the last run.
Pricing
from $0.35 / 1,000 posts
Rating
0.0
(0)
Developer
Lyklo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Get posts from public Telegram channels: text, date, views, photos and videos, links and forwards, plus each channel's subscribers and posting activity.
Switch What to return to New since the last run and schedule it, and each run returns only the posts published since the previous run. Post numbers in a Telegram channel only go up, so nothing is returned twice and nothing is skipped, even when a run stops early.
The data comes from the public web preview of each channel (t.me/s/channel). No Telegram account or phone number is needed. This is an independent tool. It is not made, endorsed or sponsored by Telegram.
Who it's for
- Brand, PR and market research teams following competitors', partners' or industry channels, with the new posts delivered to Slack or a spreadsheet every morning or every hour.
- Crypto and news watchers who need to react to channel announcements quickly.
- Agencies and analysts comparing channels: subscribers, posting frequency and typical views.
- Developers and AI pipelines that need a channel's posts as data.
How to use it
- Enter the channels, one per line:
t.me/durov,@durovordurov. - Pick What to return:
- All posts: the newest posts, every run.
- New since the last run: the first run returns the newest posts; after that, only posts published since the previous run.
- Set Maximum posts per channel (50 by default).
- To monitor, save the input as a task and add a schedule in Apify. Connect it to Slack, Google Sheets, a webhook or Zapier/Make with Apify's integrations.
Use a different Watch name for each separate list (for example one per client).
What you get
One row per post
| Field | Meaning |
|---|---|
channel, channelTitle | The channel |
postId, url | The post number and its link |
date | When it was posted |
text | The text, with line breaks kept and formatting removed |
views | Views, as Telegram shows them (rounded, for example 5.85M) |
mediaType | photo, video, document, poll or none |
imageUrls | Photos, and the preview images of videos |
links | Links in the text |
isForwarded, forwardedFrom | Whether it is a forward, and the original channel's name when Telegram shows it |
change | listed in All posts mode, new in New since the last run mode |
One summary row per channel
subscribers (and subscribersChange since the last run when monitoring), the numbers of photos, videos, links and files, postsLast7Days, postsLast28Days, avgViewsRecent10 (average views of the newest 10 posts), topPostsLast7Days (the 3 most viewed posts of the week), newSinceLastRun, the description, the verified badge and the avatar.
Output example
A post row and a channel row from a run on cointelegraph with 10 posts (shortened):
{"type": "post","change": "listed","channel": "cointelegraph","channelTitle": "Cointelegraph","postId": 72853,"url": "https://t.me/cointelegraph/72853","date": "2026-10-26T12:07:21.000Z","text": "🔥 JUST IN: Strive acquires 6,182 $BTC, bringing its total holdings to 43,000 Bitcoin.\n\nNews | Markets | YouTube","views": 4750,"mediaType": "photo","links": ["http://www.ct.com/", "https://ct.com/category/markets", "https://www.youtube.com/@cointelegraph"],"isForwarded": false,"forwardedFrom": null}
{"type": "channel","channel": "cointelegraph","channelTitle": "Cointelegraph","subscribers": 328000,"subscribersText": "328K subscribers","photos": 21000,"videos": 1290,"links": 58500,"postsLast7Days": 12,"avgViewsRecent10": 4272,"topPostsLast7Days": [{ "postId": 72847, "views": 6960, "date": "2026-10-26T03:36:38.000Z", "url": "https://t.me/cointelegraph/72847" }],"url": "https://t.me/cointelegraph"}
This run read only the newest 12 posts, so postsLast7Days is 12 here. A monitoring watch that runs every day, with a maximum above the channel's posts per day, counts the whole week.
Post rows and channel rows share one dataset. Each row has type (post or channel); filter on it when you export the results or connect them to a spreadsheet.
Pricing
You pay per event. In monitoring mode you pay only for new posts.
| Event | Price |
|---|---|
| Run start | $0.003 per run (with the default memory) |
| Post | $0.50 per 1,000 |
| Channel summary row | $0.002 each |
Prices in the table are for the Free plan. On paid Apify plans every event except the run start costs less: 10% off on Starter (Bronze discount), 20% off on Scale (Silver) and 30% off on Business (Gold) and above.
For example, watching 20 channels every day, with about 5 new posts per channel a day, costs about $2.80 a month.
Good to know
- Public channels only. The web preview exists only for public channels. Groups, private channels, people and bots are skipped with a note in the log.
- Views and subscribers are rounded the way Telegram shows them (10.2M, 5.85K).
- Busy channels. If a channel posted more than your maximum since the last run, the newest posts are returned and the older ones are skipped;
newOverMaxon the channel row tells you about how many. - Posts in the last 7 and 28 days count the posts this run read, plus, when monitoring, the ones seen in earlier runs. For a channel that posts a lot, the first run's numbers can be low until the watch has a few days of history.
- Personal data. Posts can mention or forward people. Use the data only when you have a legitimate reason.
- If Telegram changes its channel pages, the run stops with an error instead of returning wrong or empty results. Rows returned before that point are charged as usual; nothing after it is returned or charged.