Telegram Channel Scraper - Posts, Views, Reactions & Stats avatar

Telegram Channel Scraper - Posts, Views, Reactions & Stats

Pricing

from $0.90 / 1,000 results

Go to Apify Store
Telegram Channel Scraper - Posts, Views, Reactions & Stats

Telegram Channel Scraper - Posts, Views, Reactions & Stats

Scrape public Telegram channels: message text, views, reactions, media links, forwards and subscriber counts. No API key, no phone number, no login.

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

Vladimir Trifonov

Vladimir Trifonov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Telegram Channel Scraper

Extract posts and statistics from public Telegram channels — text, view counts, reactions, media links, forwards and subscriber numbers.

No API key. No phone number. No Telegram account. No api_id / api_hash. The Actor reads the same public preview pages that anyone can open in a browser, so there is nothing to register and nothing to get banned.

What you get

For every channel:

  • Channel statistics — title, description, subscriber count, photo/video/link totals, verified badge
  • Messages — full text with line breaks, publication time, permanent link, author signature
  • Reach — view count per post, both as displayed (1.48M) and as a number (1480000) you can sort by
  • Engagement — reactions per emoji with counts, plus a total
  • Media — direct URLs for photos, videos, thumbnails and video duration
  • Context — forwards with their source, replies, link previews, hashtags, mentions and outbound links

Example input

{
"channels": ["durov", "telegram"],
"maxMessages": 100,
"includeChannelInfo": true
}

Search inside a channel and limit the period:

{
"channels": ["durov"],
"searchQuery": "privacy",
"fromDate": "30 days",
"maxMessages": 500
}

fromDate and toDate accept both calendar dates (2026-01-31) and relative values (7 days, 3 months).

Example output

A message row:

{
"type": "message",
"channel": "durov",
"channelTitle": "Pavel Durov",
"messageId": 538,
"url": "https://t.me/durov/538",
"date": "2026-08-04T15:20:04+00:00",
"timestamp": 1785856804,
"text": "Last night, Apple briefly removed Telegram from the App Store...",
"textLength": 812,
"views": "1.48M",
"viewsCount": 1480000,
"author": "Pavel Durov",
"isForwarded": false,
"hasMedia": true,
"mediaTypes": ["photo"],
"photoUrls": ["https://cdn4.telesco.pe/file/..."],
"reactions": [{ "emoji": "🔥", "count": 25000 }],
"reactionsTotal": 37300,
"hashtags": [],
"mentions": [],
"links": ["https://telegram.org"],
"isEdited": true
}

A channel row:

{
"type": "channel",
"channel": "durov",
"channelTitle": "Pavel Durov",
"description": "Founder of Telegram.",
"subscribers": "11.3M",
"subscribersCount": 11300000,
"photosCount": 101,
"videosCount": 45,
"linksCount": 194,
"isVerified": true
}

Results are also available as ready-made views — Messages, Engagement, Media and Channel stats — so you can export just the columns you need.

What people use it for

  • Competitor and market tracking — watch what channels in your niche publish and which posts actually travel
  • Content research — find the highest-view posts in a channel and see the pattern behind them
  • Influencer vetting — compare subscriber counts against real per-post views before you pay for placement
  • News and OSINT monitoring — collect messages from a set of channels on a schedule, filtered by keyword
  • Dataset building — assemble text corpora with engagement labels for analysis or model training
  • Brand monitoring — search your brand name across channels and catch mentions as they appear

Fields worth knowing about

viewsCount vs views. Telegram displays 1.48M; the Actor also gives you 1480000 so you can sort, filter and compute averages without parsing strings.

reactions. Custom emoji have no unicode character, so they appear as custom:<id>. Paid star reactions appear as . reactionsTotal sums everything, which is usually the number you want for engagement scoring.

isForwarded and forwardedFrom. Lets you separate a channel's own writing from reposted material — often the fastest way to tell an original source from an aggregator.

Honest limits

  • Public channels only. Private channels, invite-only channels and group chats require an account and are out of reach. The Actor reports them as failures with a clear message instead of returning empty rows.
  • Reactions are not always exposed. Telegram shows them in the public preview for some channels and not others. When they are absent, reactions is an empty array — that is Telegram's choice, not a parsing failure.
  • Comments are not included. Discussion-group replies live in a linked group, which is a separate surface.
  • View counts are approximate — they are whatever Telegram displays publicly, rounded the same way.

Pricing

Pay per result. You are charged for the rows you actually receive, so a channel that turns out to be private or empty costs you nothing beyond the lookup.

Speed and cost

Telegram returns roughly 20 messages per page, and the Actor pages backwards from the newest post. 100 messages from one channel is about 5 requests and a few seconds. Runs are sequential across channels on purpose: parallel bursts hit rate limits far sooner than they save time.

Tips

  • Start with maxMessages: 20 to confirm a channel is public and returns what you expect, then raise it.
  • Use fromDate for recurring runs — it stops paging as soon as it reaches messages you already have.
  • Combine searchQuery with several channels to sweep a whole topic in one run.
  • Schedule the Actor and point it at the same channel list to build a time series of views and reactions.

Integrations

Results are available through the Apify API, and can be exported as JSON, CSV, Excel or XML, or pushed onward with the standard Apify integrations — Google Sheets, Slack, Zapier, Make, Airtable and webhooks.

The Actor reads only pages that Telegram publishes openly, with no login and no circumvention of access controls — the same content any visitor sees. It collects no private messages and no personal contact data. As with any scraping, you are responsible for how you use the data, particularly where it concerns individuals; check the rules that apply to you before collecting personal information at scale.