Telegram Channel Analytics: Growth and Reach avatar

Telegram Channel Analytics: Growth and Reach

Pricing

Pay per event

Go to Apify Store
Telegram Channel Analytics: Growth and Reach

Telegram Channel Analytics: Growth and Reach

One row per public Telegram channel: subscribers and growth since your last run, median views, view rate, posting cadence, reactions and forward sources.

Pricing

Pay per event

Rating

0.0

(0)

Developer

datagrit

datagrit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What does Telegram Channel Analytics: Growth and Reach do?

Telegram Channel Analytics: Growth and Reach turns a list of public Telegram channels into one analytics row per channel: subscribers, how many of them actually see a post (view rate), how often the channel posts, how people react, how much of it is forwarded from other channels, and how the audience changed since your last run. It reads the public web preview of each channel, so there is no login, no API key and no Telegram account involved. Export the rows as JSON, CSV or Excel, call the Actor through the Apify API, or connect it to n8n, Make and AI agents through MCP.

Why use Telegram channel analytics?

What sets this Actor apart is memory: it stores the subscriber count and median views of every channel it delivers, so each scheduled run adds the change since the previous run (subscribersChange, subscribersChangePerDay, medianViewsChangePct, previousCheckedAt, observations) to the row, with nothing to set up. It also lists the channels each one forwards from most (topForwardSources) and screens a shortlist by subscriber range.

  • Vet channels before you buy an ad. Compare median views, view rate and reactions per 1,000 views across a shortlist instead of trusting the subscriber number.
  • Track growth of your own and competing channels. Schedule the Actor daily or weekly; from the second run every row carries the subscriber change, the change per day and the change in median views.
  • Find the channels worth a partnership. Filter by minimum and maximum subscribers, then rank by view rate, posting cadence and the days since the last post to drop dead channels.
  • Map who a channel amplifies. Each row lists the channels it forwards from most often, which shows content sources and network clusters.
  • Feed dashboards and agents. One flat row per channel, stable field names, no message dumps to post-process.

Example output

channelsubscribersmedianViewsviewRatePctpostsPerDayforwardedSharePctsubscribersChangeisFirstObservation
durov110000041200037.50.45.012000false
bloomberg410000380009.331.20-800false
{
"channel": "durov",
"channelUrl": "https://t.me/durov",
"title": "Pavel Durov",
"verified": true,
"subscribers": 1100000,
"subscribersApproximate": true,
"postsAnalyzed": 40,
"lastPostAt": "2026-10-05T14:20:11.000Z",
"daysSinceLastPost": 1.4,
"postsPerDay": 0.4,
"medianViews": 412000,
"viewRatePct": 37.5,
"medianReactions": 9400,
"reactionsPer1kViews": 23.1,
"forwardedSharePct": 5,
"topForwardSources": [{ "channel": "telegram", "posts": 2 }],
"isFirstObservation": false,
"previousSubscribers": 1088000,
"subscribersChange": 12000,
"subscribersChangePct": 1.1,
"subscribersChangePerDay": 1714.3,
"subscribersChangeApproximate": true,
"found": true,
"scrapedAt": "2026-10-07T08:00:00.000Z"
}

How much does it cost?

You pay for each channel row that is delivered, with a lower price on paid Apify plans. Channels that cannot be read (no public preview, wrong username) come back as status rows that are not charged. Set a maximum spend on the run and the Actor stops when it is reached. The Actor uses plain HTTP requests, so a run of ten channels takes seconds and uses very little memory.

Input

  • Channels – usernames (telegram), with an at sign (@durov) or links (https://t.me/bloomberg), one per line. Duplicates are merged.
  • Posts per channel – how many recent posts feed the metrics, 20 to 400. Telegram serves about 20 posts per request.
  • Maximum post age (days) – ignore older posts, so a channel is not judged on viral posts from years ago. 0 means no limit.
  • Minimum / maximum subscribers – skip channels outside the range; skipped channels are not charged.
  • Maximum channels – total limit of channel rows per run.
  • Proxy configuration – optional; use it if Telegram throttles your region.

Output fields

Each row has the channel identity (channel, title, verified, description), size (subscribers, photosTotal, videosTotal, linksTotal), cadence (postsPerDay, lastPostAt, daysSinceLastPost), reach (medianViews, averageViews, maxViews, viewRatePct), engagement (medianReactions, reactionsPer1kViews), content mix (forwardedSharePct, topForwardSources, mediaPostsSharePct, linkPostsSharePct) and growth since the previous run (subscribersChange, subscribersChangePct, subscribersChangePerDay, medianViewsChangePct). When a channel cannot be read you get one row with found: false, a reason and a message: notFound (no such username on Telegram), notAChannel (the username belongs to a user, a bot or a group), previewUnavailable (the channel exists but its owner disabled the public preview) or fetchFailed (Telegram did not answer).

How growth tracking works

The Actor remembers the subscriber count and median views of every delivered channel in a store tied to your account. The first run for a channel has no comparison, so growth columns are empty and isFirstObservation is true; from the second run on they are filled. Run it on a schedule to build a series. Telegram rounds large subscriber counts (for example 1.1M), so for channels above roughly 10,000 subscribers the change is approximate and subscribersChangeApproximate says so.

The Actor reads only the public preview page that Telegram serves to anyone without logging in. It does not read private channels, groups or messages, and it does not bypass access controls. You are responsible for using the data in line with applicable laws, including data protection rules, and Telegram's terms. If you find an issue, open it in the Issues tab; problems are answered within one business day.

FAQ

Why is the view rate above 100%? Views can exceed subscribers when posts are shared widely. If the sample contains old viral posts, set Maximum post age to 30 or 60 days for a current picture.

Why does a channel come back without data? The row says why: the username does not exist (notFound), belongs to a user, bot or group (notAChannel), or the channel owner disabled the public preview (previewUnavailable). Such rows are not charged.

How fresh is the data? Every run reads the preview live. Views of posts younger than 24 hours are still growing, so the median uses settled posts when at least five exist.

Can I schedule runs? Yes, use Apify schedules; the growth columns rely on repeated runs.

Something looks wrong. Open an issue with the input you used; layout changes at Telegram are fixed quickly.

See other data Actors from the same publisher on the Store profile.