TGStat Channel Analytics Scraper
Pricing
Pay per event
TGStat Channel Analytics Scraper
Extract public TGStat channel analytics, subscriber trends, and recent Telegram post metrics from TGStat channel pages.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Extract public TGStat channel analytics and recent Telegram post metrics from server-rendered TGStat pages.
What does TGStat Channel Analytics Scraper do?
TGStat Channel Analytics Scraper turns public TGStat channel pages into clean datasets.
It accepts TGStat URLs, Telegram links, or @handle values.
It saves channel identity, subscriber metrics, growth trend data, and recent post engagement.
Use it when you need repeatable exports instead of manually opening TGStat pages.
Who is it for?
- 📣 Social listening teams tracking Telegram channels.
- 📈 Influencer marketers comparing channel audience quality.
- 🧲 Lead generation teams building Telegram prospect lists.
- 📰 PR teams monitoring owned, competitor, and media channels.
- 🛒 Channel buyers checking audience size before sponsorship deals.
- 🧪 Researchers collecting public channel engagement indicators.
Why use it?
Manual TGStat checks are slow.
Screenshots are hard to compare.
Copy-pasted metrics break dashboards.
This actor creates structured rows you can filter, join, and export.
What data can it extract?
| Field | Description |
|---|---|
itemType | channel, recent_post, or popular_post |
channelHandle | Telegram handle such as @durov |
channelTitle | Channel title from TGStat metadata |
description | Public TGStat description/about text |
avatarUrl | Preview image or channel avatar URL |
subscribers | Subscriber count parsed as a number |
subscriberTrend30d | Difference between first and last chart point |
subscriberTrend30dPercent | 30-day trend as a percentage |
rankText | Ranking text when TGStat exposes it |
category | Category link text when visible |
postId | TGStat/Telegram post identifier |
publishedAt | Visible post date text |
text | HTML-stripped post text |
views | Post view count |
forwards | Public share/forward count where visible |
replies | Reply/comment count where visible |
reactions | Reaction count where visible |
postUrl | TGStat post URL |
telegramPostUrl | Telegram post URL |
scrapedAt | ISO timestamp for the scrape |
How much does it cost to scrape TGStat channel analytics?
The actor uses pay-per-event pricing.
- A small run start fee covers setup.
- Each saved channel, post, or popular-post row is charged as one result.
- The default result price is designed for lightweight HTTP scraping.
For example, scraping one channel with 10 recent posts usually produces about 11 rows.
Input
You can provide:
- TGStat channel URLs, for example
https://tgstat.com/channel/@durov. - Telegram links, for example
https://t.me/durov. - Handles, for example
@durovordurov.
Input example
{"startUrls": [{ "url": "https://tgstat.com/channel/@durov" }],"channelHandles": ["@telegram"],"maxPostsPerChannel": 10,"includePopularPosts": true,"maxItems": 25}
Output example
{"itemType": "recent_post","channelHandle": "@durov","channelTitle": "Pavel Durov","subscribers": 11313704,"postId": "520","publishedAt": "23 May, 16:26","text": "Post text...","views": 2500000,"postUrl": "https://tgstat.com/channel/@durov/520"}
How to scrape a TGStat channel
- Open the actor input page.
- Paste one or more TGStat URLs or Telegram handles.
- Keep
maxPostsPerChannellow for your first test. - Run the actor.
- Export the dataset as JSON, CSV, Excel, or through the API.
Best practices
- Start with 1-3 channels to verify the fields you need.
- Increase
maxPostsPerChannelafter confirming output quality. - Use
maxItemsas a spend guard for large batches. - Re-run the same channel list on a schedule to track subscriber changes.
- Keep your own historical snapshots for trend dashboards.
Integrations
You can send output to:
- Google Sheets for channel monitoring.
- Airtable for influencer CRM workflows.
- BI tools for engagement dashboards.
- Webhooks for automated alerts.
- Apify datasets for downstream actors.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/tgstat-channel-analytics-scraper').call({startUrls: [{ url: 'https://tgstat.com/channel/@durov' }],maxPostsPerChannel: 10,maxItems: 25});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/tgstat-channel-analytics-scraper').call(run_input={'channelHandles': ['@durov'],'maxPostsPerChannel': 10,'maxItems': 25,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~tgstat-channel-analytics-scraper/runs?token=MY-APIFY-TOKEN' \-H 'Content-Type: application/json' \-d '{"channelHandles":["@durov"],"maxPostsPerChannel":10,"maxItems":25}'
MCP usage
Use the Apify MCP server from Claude Code or Claude Desktop:
https://mcp.apify.com/?tools=automation-lab/tgstat-channel-analytics-scraper
Claude Code setup:
$claude mcp add apify-tgstat https://mcp.apify.com/?tools=automation-lab/tgstat-channel-analytics-scraper
Claude Desktop JSON config:
{"mcpServers": {"apify-tgstat": {"url": "https://mcp.apify.com/?tools=automation-lab/tgstat-channel-analytics-scraper"}}}
Example prompts:
- "Scrape TGStat analytics for @durov and summarize subscriber growth."
- "Compare recent post views for these Telegram channels."
- "Export TGStat channel metrics to a table I can paste into Sheets."
Scheduling
Schedule the actor daily or weekly to build historical channel snapshots.
A daily run can show audience growth, post frequency, and engagement movement.
A weekly run is often enough for influencer discovery and sponsorship planning.
Data quality notes
TGStat may format large numbers as k or m.
The actor converts compact numbers to integers where possible.
Some metrics may be missing on a channel or post.
Missing public metrics are returned as null instead of guessed values.
Troubleshooting: no results
Check that the channel has a public TGStat page.
Private Telegram channels may not appear on TGStat.
Try a known public handle such as @durov to verify your setup.
Troubleshooting: fewer posts than requested
TGStat may show fewer recent posts in the initial public HTML.
The actor extracts posts visible in the server-rendered page.
Increase limits only after checking that TGStat exposes more rows for that channel.
Legality
This actor extracts publicly visible TGStat pages.
Do not scrape private, restricted, or personal data you are not allowed to process.
Review TGStat terms, Telegram policies, and your local regulations before using output commercially.
Related scrapers
Other automation-lab actors can complement this one:
https://apify.com/automation-lab/telegram-scraperfor broader Telegram content workflows.https://apify.com/automation-lab/social-media-scrapersfor cross-platform monitoring.https://apify.com/automation-lab/rss-feed-scraperfor content tracking.
FAQ
Does this actor log in to Telegram?
No. It scrapes public TGStat pages and does not require Telegram credentials.
Does it use a browser?
No. TGStat channel pages are server-rendered, so the actor uses lightweight HTTP requests.
Can I scrape many channels?
Yes. Add multiple URLs or handles and set maxItems high enough for the expected output rows.
Can I get historical subscriber changes?
The actor extracts the subscriber chart points visible in TGStat HTML and calculates a 30-day trend when available.
Why are some reaction counts null?
TGStat does not always expose every engagement metric for every post in the initial HTML.
Can I use it for influencer marketing?
Yes. Subscriber counts, growth trends, and post views help compare potential sponsorship channels.
Changelog
- 0.1.0: Initial TGStat channel analytics scraper with channel summary, recent posts, and popular post links.
Support
If TGStat changes its HTML and output looks incomplete, open an Apify issue with the channel URL and run ID.
The maintainer can update selectors based on the failing page.