Telegram Channel Scraper & Monitor avatar

Telegram Channel Scraper & Monitor

Pricing

from $0.35 / 1,000 posts

Go to Apify Store
Telegram Channel Scraper & Monitor

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

Lyklo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

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

  1. Enter the channels, one per line: t.me/durov, @durov or durov.
  2. 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.
  3. Set Maximum posts per channel (50 by default).
  4. 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

FieldMeaning
channel, channelTitleThe channel
postId, urlThe post number and its link
dateWhen it was posted
textThe text, with line breaks kept and formatting removed
viewsViews, as Telegram shows them (rounded, for example 5.85M)
mediaTypephoto, video, document, poll or none
imageUrlsPhotos, and the preview images of videos
linksLinks in the text
isForwarded, forwardedFromWhether it is a forward, and the original channel's name when Telegram shows it
changelisted 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.

EventPrice
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; newOverMax on 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.