I Built a Telegram Members Scraper That Reads Public Chat Stats Without Login
When I shipped my Telegram Channel Scraper, the same question kept coming back: "can you get the member count too?"
Turns out you can — without a Telegram account, without API keys, without a phone number, and without a proxy budget. So I built Telegram Members Scraper — Group & Channel Stats, and it is free to use on the Apify Store.
The problem
Telegram hosts some of the largest communities on the internet — public groups and channels show their size right on their public info page. Community managers, growth teams and researchers all want the same thing: how big is this community, and is it growing?
The official Telegram API needs api_id / api_hash plus a logged-in account. Telegram deliberately hides member rosters from the unauthenticated web. The result: an oddly empty niche for a very common question.
The extrapolation pattern: reuse the winner
Rather than write a fresh scraper, I copied my proven telegram-channel-scraper codebase and adapted it — the extrapolation play. Same httpx + BeautifulSoup stack, same no-login design philosophy, same one-item-per-chat output shape. The hardest part wasn't the code; it was being honest about what the public web surface can and cannot give you.
What the public web actually exposes (the honest finding)
Telegram does not expose member lists on its public pages. A group's /s/ URL redirects to a bare info card — title and member count only. Channels expose a /s/ post preview, but only the channel itself as author.
So the honest scope of a no-login Telegram scraper is:
- Groups → title, description, member count, online count, photo
- Channels → title, description, subscriber count, photo, message preview availability
Not per-user rosters. Anyone promising usernames/IDs/join dates without auth is using a different (authenticated) surface. I documented that limitation right in the README instead of burying it.
What it does
-
No Telegram account needed — reads the public web profile (
t.me/<chat>), nothing to authenticate or configure -
Groups and channels, one input — detects the chat type automatically and returns the right size metric (
membersfor groups,subscribersfor channels) - One dataset item per chat — clean JSON, ready for pipelines
-
Optional preview probe — for channels, collects visible author accounts from the
/s/post preview
Example output
{
"chatUsername": "DatascienceChats",
"chatType": "group",
"chatTitle": "Data Science,ML & AI Nugget Chats",
"chatDescription": "Discussion community for DS, ML, IOT, AI, DEEP LEARNING and much more…",
"memberCount": 13871,
"onlineCount": 380,
"subscriberCount": null,
"photoUrl": "https://cdn4.telegram-cdn.org/file/…",
"profileUrl": "https://t.me/DatascienceChats",
"messagePreviewAvailable": false,
"previewAuthors": [],
"scrapedAt": "2026-08-10T12:00:00+00:00"
}
Smoke test (before shipping)
Three chats, all public, no login:
| Chat | Type | Size |
|---|---|---|
DatascienceChats |
group | ~13.9K members, ~340 online |
durov |
channel | ~11.2M subscribers |
python_community |
group | 51 members |
3/3 extracted non-zero, titles and counts verified against the live pages.
Input
{
"chats": ["@DatascienceChats", "https://t.me/durov"],
"checkPreview": true
}
| Field | Type | Description |
|---|---|---|
chats |
array | Public group/channel usernames (@name, name) or links (t.me/name, t.me/s/name) — required
|
checkPreview |
boolean | Probe the /s/ message preview for channels and collect visible authors (default true) |
Use cases
- Growth tracking — chart member/subscriber counts of competitor or topic communities over time
- Community segmentation — classify public groups vs broadcast channels and their relative sizes
- Market research — size the Telegram audience for a niche before launching a channel or product
- Lead-list hygiene — confirm a group exists, is public, and roughly how many people it reaches before outreach
- AI / datasets — build metadata corpora of public Telegram communities for classification and analytics
Try it
The tool is live and free on the Apify Store: Telegram Members Scraper
Pass a few chat usernames, get back their public profile and membership size as JSON. No account, no API keys, no phone number, no proxy.
Limitations (stated plainly)
- Public chats only — private groups/channels are not accessible without authentication
- No member roster — Telegram hides member lists from the web; you get the membership size and chat profile, not per-user rows
-
Counts are as displayed — Telegram rounds large numbers on the public page (e.g.
13.9K→13900)
If you need an actual member roster, that requires the authenticated Telegram API — a different architecture, legal posture and price point. This tool deliberately stays on the no-login web surface.
More from me
While you're here, these might be worth a read:
- Make Any Website AI-Readable: Generating llms.txt Files with
- Scraping 187,000 Romanian Businesses: Building a B2B Lead Gene...
- How to Extract Clean Content From Any Website Sitemap (For SEO...
- 5 APIs Every Developer Needs for Content Processing (RSS, Extraction, Sitemaps, AI)
- How I Built a Product Hunt Scraper That Tracks Launches in Rea...
- Tracking Tech Sentiment in Real-Time with VADER and Python
- Building a Universal Property Listing Scraper with Python and ...
- Building a Real-Time Press Release Monitor with Python and RSS...
- Building an AI Web Crawler That Outputs LLM-Ready Content Chunks
- Building a WHOIS & DNS Lookup Tool: Domain Intelligence in One...
Top comments (0)