Telegram Private Group Scraper avatar

Telegram Private Group Scraper

Pricing

from $0.27 / 1,000 results

Go to Apify Store
Telegram Private Group Scraper

Telegram Private Group Scraper

Use an authenticated Telegram user session to collect up to max_results accessible member profiles from one matched basic group or supergroup dialog. Optional Deep Search adds message-author discovery without bypassing Telegram access controls.

Pricing

from $0.27 / 1,000 results

Rating

5.0

(3)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

3

Bookmarked

111

Total users

5

Monthly active users

8 days ago

Last modified

Share

Telegram Private Group Scraper is a telegram private group scraper that exports up to a strict limit of 23-field member profiles visible to an authenticated Telegram user session. It reads one authorized group, deduplicates accounts by Telegram ID, and records whether each profile came from the participant list or reachable message history.

Apify Users Apify Runs price capability API + MCP ready

  • Authorization belongs to the caller. Reuse a Telethon StringSession or scan a short-lived QR code with an account that already belongs to the group.
  • Predictable group selection. Exact username or numeric-ID matches win; otherwise the shortest matching group title is selected and logged.
  • Two read-only discovery paths. Read the visible participant list first and optionally add distinct message authors from reachable history.
  • A strict financial boundary. max_results is checked before another profile is accepted, so Dataset rows and Result events cannot exceed it.

Why Choose Telegram Private Group Scraper

Telegram Private Group Scraper is designed for authorized account-visible research where a public-group scraper cannot see the intended community. It uses the caller's session because a shared service account is not a member of the caller's private groups and cannot lawfully or technically inherit that access.

The standard path reads the group participant surface available to the authenticated account. When deep_search is enabled, the Actor also walks reachable messages and adds distinct user authors. That second path can broaden a sample when Telegram hides much of a supergroup's participant list, but it does not bypass access controls or reveal accounts absent from every accessible surface.

The runtime preserves provenance rather than presenting an ambiguous roster. found_in: "participants" means Telegram returned the account from the visible list. found_in: "messages" means the account authored a reachable message; it does not prove current membership. Every row repeats the group ID, title, and public username when available.

The redesigned collector removes a measured 36-query alphabet pass that produced no additional profiles, avoids one extra entity request per message author, and stops strictly at the requested profile count. It writes in batches of 50, charges result only after a successful Dataset push, and keeps unique accounts by numeric Telegram ID.

Quick Start Guide

Use an account whose owner knows about the run and already has legitimate access to the target group. A reusable session is the only unattended authentication path.

{
"session": "YOUR_TELETHON_STRING_SESSION",
"password": "",
"group_match": "YOUR_AUTHORIZED_GROUP",
"deep_search": true,
"max_results": 1
}

If session is empty, the run prints a short-lived QR code. On Telegram mobile, open Settings, Devices, and Link Desktop Device, then scan within roughly 30 seconds. Up to three QR windows are attempted. When login succeeds, the generated StringSession is sent to the same account's Saved Messages; it is not printed as text in the run log.

An account with two-step verification may also require password. Treat both the password and StringSession as credentials. Never paste them into issues, logs you share, source code, or an unsecured automation. Revoke the Telegram device session immediately if either value may have been exposed.

After login, confirm the selected group title and numeric ID in the log. Exact public usernames and IDs are safest. A partial title selects the shortest matching title, which is deterministic but can still be the wrong group if the query is vague.

Input Parameters

Five inputs control authentication, group selection, discovery depth, and the strict output limit.

FieldTypeRequiredBehavior
sessionsecret stringNoReuses a Telethon StringSession; empty starts interactive QR login.
passwordsecret stringNoSupplies Telegram two-step verification when Telegram requests it.
group_matchstringYesExact username/ID wins; otherwise the shortest accessible group title containing the text is chosen.
deep_searchbooleanNoAdds distinct authors from reachable message history after the participant list.
max_resultsintegerNoStrict maximum unique profiles to write, minimum 1; defaults to 100 in runtime and the production prefill uses 1.

Free-plan runs force deep_search off and cap max_results at 100. Paying runs retain the submitted Boolean and integer. No input can join a group, accept an invitation, send outreach, widen the account's permissions, select fields, or bypass Telegram visibility.

The Store prefill uses YOUR_AUTHORIZED_GROUP because no universal private group exists and no credential may be embedded in a public schema. Replace it with a group available to your own session before starting the run.

Output Data Schema

Each saved profile follows the same 23-field sparse contract. Telegram can omit public or account-visible facts, so null values are expected and are never replaced by guesses.

GroupFieldsMeaning
Group provenancegroup_id, group_username, group_title, found_inSelected group and the path that produced the observation
Identityid, username, usernames, source_url, first_name, last_name, typeNumeric account identity, active handles, public profile URL, names, and user-or-bot type
Account-visible factsphone, last_seen, is_premium, is_verified, is_deleted, is_scam, is_fake, is_restricted, stories_hidden, premium_contactValues Telegram exposes to the authenticated session at collection time
Processingprocessor, processed_atActor attribution and UTC formatting timestamp
{
"group_id": 1013954462,
"group_username": null,
"group_title": "Authorized Research Group",
"found_in": "participants",
"id": 1036017898,
"username": "example_member",
"usernames": ["example_member"],
"source_url": "https://t.me/example_member",
"first_name": "Alex",
"last_name": null,
"type": "user",
"phone": null,
"last_seen": "recently",
"is_premium": true,
"is_verified": false,
"is_deleted": false,
"is_scam": false,
"is_fake": false,
"is_restricted": false,
"stories_hidden": null,
"premium_contact": null,
"processor": "https://apify.com/agentx/telegram-private-group-scraper",
"processed_at": "2026-08-12T12:00:00+00:00"
}

Rows without a numeric ID or without both a first name and username are not published. Repeated observations across participant and message paths are deduplicated by ID, and the first accepted discovery path remains on the row.

Integration Examples

Actor ID L4SPW5ECJb9gP5aDT is used by the public API. Store the Apify token and Telegram credentials in separate managed secrets.

curl -X POST "https://api.apify.com/v2/acts/L4SPW5ECJb9gP5aDT/runs?maxTotalChargeUsd=0.02" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"session":"YOUR_TELETHON_STRING_SESSION","password":"","group_match":"YOUR_AUTHORIZED_GROUP","deep_search":true,"max_results":1}'

Fetch defaultDatasetId from the completed run and compare its item count with chargedEventCounts.result. The two counts should agree because the event is emitted only for successfully pushed profiles. When combining snapshots, deduplicate by id and retain processed_at; usernames, status, flags, visibility, and group membership can change.

For MCP, connect through the Apify MCP integration, inspect the current schema, and call agentx/telegram-private-group-scraper with the same input. An autonomous client must not invent a group query, reuse an unapproved session, enable Deep Search, or increase the limit without explicit authorization.

Pricing

The local pricing contract charges one Actor Start and one Result for each member profile successfully written to the default Dataset.

EventFREEBRONZESILVERGOLDPLATINUMDIAMOND
Actor Start$0.01000$0.01000$0.01000$0.01000$0.01000$0.01000
Result$0.00080$0.00072$0.00064$0.00060$0.00060$0.00060

At FREE-tier Result pricing, one delivered profile costs $0.01000 + 1 × $0.00080 = $0.01080; 100 delivered profiles cost $0.01000 + 100 × $0.00080 = $0.09000. A run returning no profiles creates no Result event but can still incur the Actor Start and separate platform usage.

max_results is a strict row and Result-event ceiling in the current runtime. Set maxTotalChargeUsd as an additional account-level guard, especially when a workflow can retry. Actual charges follow the published tier and events emitted at execution time.

Use Cases

Authorized community administration: create a bounded snapshot for access review, migration planning, or internal group operations with the account owner's knowledge.

Consent-based research: collect only the minimum account-visible fields needed for a documented research purpose, while preserving the selected group and discovery path.

Data-quality comparison: compare the visible participant list with reachable message authors without treating either population as a complete current roster.

Security response: review Telegram's own visible account flags as leads for human investigation, not as verified conclusions about a person.

Do not use exported profiles for unsolicited messaging, harassment, covert monitoring, sensitive-trait inference, hidden-control evasion, or resale of private-group membership.

Alternatives

Use Telegram Member Scraper when a public username-addressable group is sufficient and no user session should be supplied.

Use Telegram Chat Scraper when the needed unit is a public message rather than a member profile. Use Telegram Info Scraper when you need public entity metadata from known usernames or IDs.

A custom Telethon client provides maximum control but makes your team responsible for credential lifecycle, group selection, pagination, flood handling, output mapping, billing controls, and recovery. Manual review avoids automation but is difficult to reproduce and produces no stable Dataset or run evidence.

Any tool promising to reveal every hidden member exceeds what Telegram exposes. Compare alternatives by authorization model, output contract, strict result limits, provenance, session handling, and disclosure of incomplete visibility.

Limits and Troubleshooting

QR login times out. Start again and scan the code within 30 seconds, or use an existing StringSession. Add password only if Telegram requests two-step verification.

A session no longer works. Telegram device sessions can expire or be revoked. Clear the session, authenticate again, and replace the stored credential. Do not reuse a session with different Telegram API application credentials.

No group matches. Confirm that the signed-in account belongs to the group and use an exact public username or numeric ID when possible. A private group without a username can be matched by a distinctive title fragment or its dialog ID.

The wrong group is selected. A partial title chooses the shortest matching group title. Make the query more specific and verify the logged title and ID before processing results.

Fewer profiles are returned. Telegram may expose only a subset of participants. Enable Deep Search for authorized message-author discovery, but remember that non-posting hidden accounts remain unreachable.

A row came from messages. That observation proves reachable authorship, not current membership. Use found_in to keep message-derived accounts separate.

A field is null. Telegram privacy and account visibility determine values such as phone and presence. Null is not an extraction error by itself.

Trust and Reliability

The production contract is explicit about authentication, selection, output, billing, and visibility. Exact username or ID matches take precedence; partial titles select the shortest match. Profiles are deduplicated by numeric ID and accepted only until the strict maximum is reached.

Static acceptance covers the Actor file set, JSON schemas, Ruff, Mypy, Pyright, and an isolated no-network Docker harness for input normalization, free-tier rules, group selection, 23-field formatting, strict limiting, deduplication, and result event usage. A genuine success run cannot be universal because it requires a caller-owned Telegram session and an authorized group.

The Actor is not endorsed, certified, or audited by Telegram, Telethon, Apify, or a privacy regulator. Telegram remains authoritative for returned entities, visibility, status, and flags. Partial output should never be interpreted as proof that an unseen account is absent.

Use this Actor only with the account owner's knowledge and for groups and purposes you are authorized to process. Define a lawful basis, minimum necessary fields, access controls, retention period, deletion process, and incident response before collection.

Account-visible profile data can still be personal data. Telegram's API terms and privacy documentation remain applicable. Do not evade platform controls, republish sensitive membership, or treat Telegram labels as independent factual findings.

A StringSession can allow another party to act as the account. Restrict access to Actor inputs, runs, logs, and Saved Messages. Revoke the linked device immediately after suspected disclosure. This section is operational guidance, not legal advice.

Frequently Asked Questions

How can I scrape private telegram group members?

Use a Telegram session belonging to an informed account owner who already has legitimate access, provide a distinctive group match, start with one result, and collect only profiles Telegram exposes to that account.

Is there a telegram private group members api?

Yes. Actor ID L4SPW5ECJb9gP5aDT exposes this workflow through Apify's REST API and MCP, but each successful run still requires an authorized Telegram session and group.

Does Deep Search reveal every hidden member?

No. It adds distinct authors from reachable messages. It cannot discover hidden members who never authored an accessible message and are absent from the visible participant list.

Can a message author be a former member?

Yes. found_in: "messages" is an authorship observation from reachable history, not a guarantee of current group membership.

Can the Actor exceed max_results?

No in the current runtime. The collection state checks the requested count before accepting another unique profile, including profiles read from a larger Telegram page.

How do I export members from private telegram group dialogs?

Sign in with an account that already belongs to the group, put a distinctive title fragment, @username, or numeric ID in group_match, and read the Dataset. The visible participant list is collected first; turn on Deep Search to add distinct message authors where Telegram hides the list. Nothing here joins a group or reveals accounts the group does not expose to that account.

Why does the public prefill contain a placeholder?

There is no universal private group or safe public session. Replace YOUR_AUTHORIZED_GROUP and provide your own secret session or complete QR authentication interactively.

Is it safe to share a StringSession with support?

No. Never share it. Revoke the Telegram device session if it was exposed, and provide only a run ID plus sanitized, non-secret diagnostics.

These AgentX Actors cover adjacent public Telegram profiles, messages, and entity metadata without duplicating this authenticated private-group workflow.

Business and Market Intelligence

Jobs and Hiring

Social Media

Video, Transcripts and Downloads

E-Commerce and Retail

Classifieds and Automotive

Real Estate

Support and Community

Ask the AgentX team in the Telegram community with the Actor name, run ID, UTC time, sanitized group query, selected group ID, deep_search, requested count, returned count, and relevant non-secret logs. Never post a StringSession, QR code, two-step password, API token, private group title, or member records.

AgentX is an Arcyton brand — arcyton.com.

Last Updated: August 12, 2026