Telegram Channel Scraper - Posts, Views, Media avatar

Telegram Channel Scraper - Posts, Views, Media

Pricing

Pay per event

Go to Apify Store
Telegram Channel Scraper - Posts, Views, Media

Telegram Channel Scraper - Posts, Views, Media

Scrape posts from any public Telegram channel: full text, publish time, view counts, media flags, forwards and outbound links, plus channel title and subscriber count. No login, no bot token.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Telegram Channel Scraper

Read posts from any public Telegram channel: the full text, when it was published, how many people saw it, whether it carries photo or video, what it forwards, and every external link in it. Plus the channel's title and subscriber count.

No login. No bot token. No API registration.

What a run looks like

Pass durov and you get its posts with view counts attached:

PostPublishedViewsText
durov/5462026-08-31 16:301,130,000Gram Wallet in Telegram is ready…
durov/5452026-08-30 09:101,320,000A high-school student just made $20,000…
durov/5442026-08-24 21:212,460,000Two years ago, I was detained in Paris…
durov/5432026-08-18 17:373,170,000Telegram has applied for the .gram domain…

Alongside every row: channel_title and subscribers, so a post's reach can be read against the channel's size rather than in isolation.

Views come back twice, and that is deliberate

Telegram displays view counts abbreviated: 1.2K, 3.17M. Kept as text, they sort alphabetically, which puts 1.2K below 999 and quietly ruins any "top posts" ranking.

So each row carries both: views_text exactly as Telegram shows it, and views as an integer you can sort, sum and average. 3.17M becomes 3,170,000.

Public channels only, and it says so when it hits one

This is the sharpest edge in the data. A private channel, a group or a username nobody uses does not return an error. Telegram serves a perfectly valid page titled "Telegram: Contact @name", with no posts in it.

Read carelessly, that is indistinguishable from a channel that exists and has never posted. Those two facts are entirely different, and this Actor separates them: the page is recognised and reported as not_a_public_channel, naming the channel, while every other channel in the same run continues normally.

Text keeps its shape

Post text arrives as markup, with <br/> for line breaks and a wrapper around every emoji. Strip the tags first and a fifteen-paragraph post becomes one unreadable line.

Breaks are converted before tags are removed, so paragraphs survive and emoji stay where the author put them. That matters if you are feeding posts into anything that reads them, summarises them or shows them to a person.

Fields

  • Identity: channel, message_id, post, url
  • Content: text, text_length, posted_at
  • Reach: views, views_text, subscribers, channel_title
  • Attribution: author, signature, forwarded_from, is_forwarded
  • Media: has_photo, has_video, has_link_preview, is_reply
  • Links: outbound_links — external links only, Telegram's own excluded, so what is left is where the channel actually sends its readers

Input reference

FieldTypeDefault
channelspublic channel names["durov","telegram"]
limit1-5000100
retries1-84

A t.me/durov link or @durov both work and are reduced to the name. limit is split across the channels you give, so 100 over two channels is roughly 50 each.

Paging walks backwards through message ids: each request asks for the posts older than the lowest id seen so far. There is no page count and no total, so a run ends when a page returns nothing new.

Typical uses

  • Competitive and market monitoring. Track what channels in your sector publish and which posts actually travel. views against subscribers is the engagement rate.
  • News and signal collection. Many announcements land on Telegram first. Schedule the Actor and join on post to catch only what is new.
  • Content research. text plus views shows which topics a channel's audience responds to.
  • Link and campaign tracking. outbound_links shows where a channel drives traffic, and is_forwarded with forwarded_from maps how a message spreads between channels.
  • Archiving. Posts with their timestamps and view counts as they stood, for channels that edit or delete.

Notes

Everything here is what Telegram publishes openly for sharing and previewing. Nothing private is reachable and nothing here tries to be.

views is absent on some posts, which is the channel's own setting rather than a scrape failure, and comes back null rather than zero.

Subscriber counts are as shown at the time of the run, and Telegram rounds them: a channel of 10.9M is reported as 10,900,000, not to the person.