Telegram Profile Scraper — Users, Channels & Groups
Pricing
$24.99/month + usage
Telegram Profile Scraper — Users, Channels & Groups
Scrape real public profile data from any Telegram @username. Returns name, bio, member count, verified status, premium status, photo and channel details. Accepts any format: @username, t.me/link or plain name. Batch scrape hundreds of profiles. RESIDENTIAL proxy included.
Pricing
$24.99/month + usage
Rating
0.0
(0)
Developer
Scrape Pilot
Actor stats
0
Bookmarked
8
Total users
2
Monthly active users
5 days ago
Last modified
Share
📱 Telegram Profile Scraper v1 — Public Data, No API Key Required
Extract public profile information from any Telegram user, channel, or group.
Get usernames, names, bios, verification status, premium badges, member counts, online counts, and more — without any Telegram API key. Just enter a t.me/ URL or username.
💡 What is Telegram Profile Scraper?
Telegram Profile Scraper is a smart automation tool that extracts publicly available data from Telegram profiles, channels, and groups using only the public web interface. No API key, no login, no phone number required.
It parses t.me/{username} pages (official public profile view) and retrieves structured information that anyone can see in their browser. This includes:
- Users – username, first/last name, bio, photo status, verified badge, premium badge
- Channels & Groups – title, username, description, member count, online count, verified status, scam/fake flags (when visible)
All data is returned in clean JSON format, ready for analysis, lead generation, or integration into your own applications.
📦 What Data Can You Extract?
| 🧩 Data Type | 📋 Description |
|---|---|
| 👤 User Profile | Username, first name, last name, bio/description |
| ✅ Verification & Premium | is_verified, is_premium badges |
| 🖼️ Profile Photo | Boolean + direct photo URL (when available) |
| 📢 Channel/Group Details | Title, description, member count, online count |
| 🛡️ Safety Flags | is_scam, is_fake, is_restricted (as visible) |
| 🏛️ Channel Metadata | Admins count (when available), created date (some channels) |
| 🕒 Timestamps | processed_at (UTC) and last_seen (estimation) |
Note: Phone numbers, private call settings, common chat counts, and other private information are NOT extracted — this scraper only collects what is public on
t.me/pages.
⚙️ Key Features
- No API Key Required – Works directly with Telegram’s public web interface.
- User & Channel/Group Detection – Automatically distinguishes between user profiles and channel/group pages.
- Member & Online Counts – Extracts subscriber and online member numbers (for channels/groups).
- Verification & Premium Detection – Recognizes verified accounts and Telegram Premium subscribers.
- Residential Proxy Required – Telegram blocks datacenter IPs; the actor is built to work with Apify residential proxies.
- Bulk Scraping – Accepts multiple usernames or URLs in one run.
- Filtering – Filter by type (
userorchannel) and by keyword in description/title. - Clean JSON Output – Every record follows a consistent schema.
📥 Input Parameters
The actor accepts a JSON object with the following fields:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
telegram_urls | array or string | No | – | List of Telegram URLs or usernames (e.g., ["https://t.me/durov", "@telegram"]). You can also provide a comma‑ or newline‑separated string. |
telegram_url | string | No | – | Single Telegram URL or username (convenience alternative to telegram_urls). |
keyword | string | No | – | Filter results: only keep profiles whose title, first name, or description contains this keyword (case‑insensitive). |
filter_type | string | No | – | Filter by profile type: user or channel. |
max_results | integer | No | 50 | Maximum number of profiles to scrape (useful when providing many URLs). |
proxyConfiguration | object | No | – | Apify proxy configuration. Residential proxies are strongly recommended (Telegram blocks datacenter IPs). |
Example Input (Basic)
{"telegram_urls": ["https://t.me/durov", "@telegram", "NASA"],"max_results": 10}
Example Input (With Filtering & Proxy)
{"telegram_urls": ["https://t.me/durov", "https://t.me/binance", "https://t.me/s/nytimes"],"filter_type": "channel","keyword": "news","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
📤 Output Format
Each profile is returned as a JSON object. The exact fields depend on whether the profile is a user or a channel/group. Both schemas share common fields.
Common Fields (All Profiles)
| Field | Type | Description |
|---|---|---|
status | string | success, failed, or not_found. |
source_url | string | The original input URL/username. |
processor | string | Fixed value https://apify.com. |
processed_at | string | ISO timestamp (UTC) of extraction. |
usernames | array | List of usernames (usually one). |
type | string | user, channel, or group. |
title | string | Full display name (user’s full name or channel title). |
first_name | string | For users: first name (or full name). |
last_name | string | For users: last name (if any). |
description | string | Bio or description text. |
is_verified | boolean | Verified badge present. |
is_premium | boolean | Telegram Premium subscriber. |
profile_photo | boolean | Has profile photo. |
profile_photo_url | string | Direct URL of the profile photo (if available). |
User‑Specific Fields
| Field | Type | Description |
|---|---|---|
is_scam | boolean | Scam flag (if visible). |
is_fake | boolean | Fake flag. |
is_deleted | boolean | Always false (web page won’t show deleted). |
is_support | boolean | Support account flag. |
is_restricted | boolean | Restriction flag. |
is_blocked | boolean | Always false (block status not public). |
phone | null | Not extracted (private). |
lang_code | string | Always "en" (not available from web). |
last_seen | string | Always "online" (estimation). |
phone_calls | boolean | Always true (default). |
video_calls | boolean | Always true. |
voice_messages | boolean | Always true. |
can_pin | boolean | Always false. |
premium_contact | boolean | Always false. |
common_chats_count | integer | Always 0 (private). |
has_scheduled | boolean | Always false. |
can_manage_emoji | boolean | Always false. |
private_calls | boolean | Always false. |
private_reads | boolean | Always false. |
Channel / Group‑Specific Fields
| Field | Type | Description |
|---|---|---|
member_count | integer | Number of subscribers / members. |
online_count | integer | Currently online members (if shown). |
is_scam | boolean | Scam flag. |
is_fake | boolean | Fake flag. |
is_forum | boolean | Forum flag. |
is_restricted | boolean | Restriction flag. |
has_location | boolean | Always false. |
gigagroup | boolean | Always false. |
join_to_send | boolean | Always false. |
join_request | boolean | Always false. |
no_forwards | boolean | Always false. |
slowmode | boolean | Always false. |
has_scheduled | boolean | Always false. |
view_stats | boolean | Always false. |
call_active | boolean | Always false. |
linked_chat_id | null | Not extracted. |
location | null | Not extracted. |
admins_count | integer | null (not public). |
banned_count | integer | 0. |
view_members | boolean | false. |
Example Output (User)
[{"status": "success","source_url": "https://t.me/durov","processor": "https://apify.com","processed_at": "2026-04-04T12:00:00Z","usernames": ["durov"],"type": "user","title": "Pavel Durov","first_name": "Pavel","last_name": "Durov","description": "CEO of Telegram","is_verified": true,"is_premium": true,"profile_photo": true,"profile_photo_url": "https://telegram.org/img/...","is_scam": false,"is_fake": false,"is_deleted": false,"is_support": false,"is_restricted": false,"is_blocked": false,"phone": null,"lang_code": "en","last_seen": "online","phone_calls": true,"video_calls": true,"voice_messages": true,"can_pin": false,"premium_contact": false,"common_chats_count": 0,"has_scheduled": false,"can_manage_emoji": false,"private_calls": false,"private_reads": false}]
Example Output (Channel)
[{"status": "success","source_url": "https://t.me/binance","processor": "https://apify.com","processed_at": "2026-04-04T12:01:00Z","usernames": ["binance"],"type": "channel","title": "Binance Official","description": "Official Binance announcements and updates","is_verified": true,"is_premium": false,"profile_photo": true,"member_count": 1520000,"online_count": 12000,"is_scam": false,"is_fake": false,"is_forum": false,"is_restricted": false,"has_location": false,"gigagroup": false,"join_to_send": false,"join_request": false,"no_forwards": false,"slowmode": false,"has_scheduled": false,"view_stats": false,"call_active": false,"linked_chat_id": null,"location": null,"admins_count": null,"banned_count": 0,"view_members": false}]
🛠 How to Use on Apify
- Create a task with this actor.
- Provide input – list usernames or full Telegram URLs.
- Configure proxies – must enable residential proxies (Telegram blocks datacenter IPs).
- Run – the actor will scrape each profile and push data to the Dataset.
- Export – download results as JSON, CSV, or Excel.
Running via API
curl -X POST "https://api.apify.com/v2/acts/your-username~telegram-profile-scraper/runs" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"telegram_urls": ["@durov", "@telegram"],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}'
🎯 Use Cases
- Lead Generation – Extract bio and contact info from public Telegram profiles.
- Competitive Intelligence – Monitor channel subscriber counts and online activity.
- Influencer Research – Identify verified and premium users in a niche.
- Community Analytics – Track growth of public groups/channels over time.
- Fraud Detection – Flag scam or fake channels (using
is_scam/is_fakeflags). - Data Enrichment – Augment your CRM with Telegram usernames and verification status.
❓ Frequently Asked Questions
Q1. Do I need a Telegram API key?
No. This scraper uses only the public web interface (t.me/ pages). No API key, no login, no phone number required.
Q2. Why do I need residential proxies?
Telegram aggressively blocks datacenter IP addresses (AWS, Google Cloud, etc.). Residential proxies mimic real users and are necessary to avoid 403 Forbidden or 429 Too Many Requests errors.
Q3. Can I extract phone numbers or private messages?
No. This tool only extracts publicly available information. Phone numbers, call settings, private chats, and common chat counts are not accessible via the public web interface.
Q4. How accurate are member counts and online counts?
They are taken directly from the public t.me/ page. For large channels, the numbers are typically accurate to within a few percent. Online counts are only shown when the channel/group enables that feature.
Q5. What happens if a profile is not found?
The actor returns a status: "not_found" object with no further data. The run will continue to other URLs.
Q6. Can I filter by keyword or profile type?
Yes. Use keyword to filter by text in title/description, and filter_type to keep only user or channel results.
Q7. How fast is it?
Each profile takes 2–4 seconds (including random delays to avoid rate limits). Bulk scraping of up to 50 profiles usually completes in under 3 minutes.
🔍 SEO Keywords
Telegram scraper, Telegram profile extractor, Telegram channel data, Telegram group members, Telegram public API alternative, social media intelligence, Telegram premium detector, bulk Telegram scraper, Apify Telegram actor, t.me scraper