Telegram Channel Stats icon

Telegram Channel Stats: Subscribers, Views and Engagement

This Actor returns one row per public Telegram channel with subscribers, posts per day, average and median views, views per subscriber, reactions and top posts, all computed from the channel's newest posts. It is for ad buyers, partnership managers and analysts who need to vet channels before spending money on them.

Main price: $4.00 to $8.00 per 1,000 channels, depending on your Apify plan.

What you can do with it

  • Spot inflated channels with many subscribers and few views before you buy an ad.
  • Compare a list of partner or influencer channels side by side.
  • Follow how often competitors post and how much reach they get.
  • Collect channel titles, descriptions and links for outreach lists.

What you get

Results come as rows in an Apify dataset, which you can export as JSON, CSV or Excel or read over the API. These are the main fields:

FieldExampleMeaning
subscribers10300000Subscriber count
postsAnalyzed60Newest posts used for the numbers
postsPerDay0.33Posting rate over the analyzed posts
avgViews, medianViews6899500, 4720000Views per post
viewsPerSubscriberPercent67Reach, from posts older than a day
reactionsPer1000Views15.17Engagement rate
daysSinceLastPost8.9How recently the channel posted

Pricing

This Actor is pay per event. Apify plan tiers set the price: the column for your Apify plan is what you pay, and higher plans pay less per result. Prices are per 1,000 events.

EventWhat is chargedFreeStarterScaleBusiness
ChannelStats for one public channel (channels without a public preview are free).$8.00$5.00$4.50$4.00

Run start fee: $0.05 per 1,000 runs. Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). Prices come from the Apify Store and can change; the Actor's Apify page always shows the current ones. Platform usage is billed through your Apify account.

Run it from code

Create an API token in Apify Console (Settings, API and Integrations) and replace YOUR_APIFY_TOKEN. This call starts a run with a small input and returns the rows when it finishes. Synchronous calls suit small inputs; for big jobs, start a run and read the dataset later.

curl

curl -X POST "https://api.apify.com/v2/acts/apisamurai~telegram-channel-stats/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "channels": [
    "durov",
    "telegram"
  ]
}'

Python (pip install apify-client)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
    "channels": ["durov", "telegram"],
}

# Start the Actor and wait for it to finish.
run = client.actor("apisamurai/telegram-channel-stats").call(run_input=run_input)

# Read the results from the run's default dataset.
items = client.dataset(run.default_dataset_id).list_items().items
for item in items:
    print(item)

JavaScript (npm install apify-client)

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const input = {
    channels: ['durov', 'telegram'],
};

// Start the Actor and wait for it to finish.
const run = await client.actor('apisamurai/telegram-channel-stats').call(input);

// Read the results from the run's default dataset.
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Client calls follow the Python and JavaScript client docs. The full input reference is on the Actor's Apify page.

FAQ

Do I need a Telegram account?
No. The Actor reads public channel previews.
How many posts are analyzed?
60 newest posts by default, up to 500. More posts give steadier averages for busy channels.
Why does views per subscriber skip the newest posts?
Posts newer than a day are still collecting views, so they are left out of that number.
What is not charged?
Channels without a public preview are skipped and not charged.
Where do I report a problem?
Email hello@apisamurai.com, or open an issue on the Actor's Apify page.