Social Media Bots

Mass DM, Scraping & Automation on Telegram at Scale

What's actually possible in 2026: scraping limits, mass-DM patterns that don't instantly ban, the ring-farm architecture, and where the ROI curve flattens.

10 min readApril 19, 2026
On this page (14)

"Anyone know a Telegram scraper / mass DM service?" is a top-asked question in OFM operations chats, usually followed by "why do all these services disappear?" Mass messaging and scraping on Telegram is technically possible but operationally brutal. Every service you've heard of that does this is either: (a) too small to have survived, (b) operating at a constant account-burn rate, or (c) selling you something that doesn't actually scale.

This guide covers what's technically achievable, the real cost in accounts and infrastructure, when the math works out, and when you should just pay for targeted ads or organic funnels instead.


1. What's technically possible vs what's survivable

Technically possible (with the right tooling):

  • Scrape member lists of any public Telegram group/channel you can join.
  • Extract usernames, display names, last-seen timestamps (not phone numbers).
  • Mass DM the scraped list from an account pool.
  • Mass invite users to your channel/group (with caveats, see Section 4).
  • Mention all members in a group.

Survivable at scale (in terms of account longevity):

  • Scraping: yes, mostly. Safe if done with authorized-looking Telethon clients.
  • Mass DM: barely. Every account doing this dies quickly (hours to days).
  • Mass invite: almost dead as a practice due to Telegram privacy updates.
  • Mention-all: still survives but subject to group-admin controls.

The gap between "possible" and "survivable" is where most operators get burned. A tool that lets you send 10,000 DMs is real; it's just that executing it burns through 100+ accounts and leaves most of the targets never seeing the messages because those accounts were spam-blocked mid-sprint.


2. Scraping group members, the tech

How it's done:

  • Tools are typically built on Telethon, Pyrogram, or GramJS (Node). These use Telegram's MTProto API.
  • You log in with a Telegram account (bot accounts can't do member scraping, only user accounts).
  • You join the target group/channel.
  • The API exposes the member list (for groups) or subscriber count + partial data (for channels).
  • Script dumps usernames, user IDs, names, last-seen info to CSV.

What data you actually get:

  • Telegram user ID.
  • Username (if set, many users don't have one).
  • Display name.
  • Last-seen info (online now, last month, hidden, etc.).
  • Profile photo (if accessible).

What you do NOT get:

  • Phone numbers (only if they're already your contact).
  • Email.
  • IP/location.
  • Real identity.

Public vs private channels:

  • Public group: you join freely, scrape freely.
  • Public channel: Telegram limits subscriber-list access on channels (vs groups). You can see subscriber counts and sometimes recent joiners, but not the full list.
  • Private group: you need an invite to join. Once in, you can scrape.
  • Private channel: subscriber list is not exposed to you even as a member.

Scraping risk to your account:

  • Low if you're pulling small groups (<5k members) at human pace.
  • Medium if you're pulling 50k+ member groups, Telegram rate-limits and flags.
  • High if you're running many parallel scrapes across many accounts, aggregate pattern triggers flag.

Rule: use a dedicated scraping account (not your main account), rate-limit the scrape (sleep between API calls), don't try to dump a 100k-member group in one sitting.


3. Mass DM from scraped lists

This is where ambition meets reality.

How it works:

  • You have a scraped list (10k usernames from some large crypto/meme group).
  • You have a pool of warmed Telegram accounts (10-100).
  • Your tool distributes the list across the pool: each account DMs 100-200 targets.
  • Each DM typically includes a short hook and a link to your destination.

Per-account daily limits:

  • Aged warmed account: 50-150 first-contact DMs to non-contacts per day before hitting spam filters.
  • Fresh warmed account: 20-50.
  • Burner account: 5-20 before freezing.

How Telegram detects mass DMs:

  • Identical content patterns. Even with small variations, pattern analysis catches templates.
  • Rapid session spawn. Logging 10 accounts in within 5 minutes from the same IP.
  • Recipient behavior. If your targets mass-block you, that's the biggest flag (users pressing "report spam" in DMs).
  • Sub-millisecond send timing. Humans don't send 1 DM/second to 100 strangers.

Burn rate on accounts doing this:

  • 1000 DMs over 10 accounts (100/each) in one day = roughly 30-60% of those accounts freeze within 48 hours.
  • If you scale to 50 accounts in one burst, burn rate hits 70-90%.
  • The spray-and-pray math: send 10,000 DMs, expect 3,000-4,000 to deliver, ~20-50 replies, ~5-10 meaningful conversations.

Why most "mass DM services" collapse within weeks:

  • They can't keep replacing burned accounts faster than customer spam campaigns burn them.
  • SIM supply and warmed accounts run out.
  • Service reputation craters when customers complain about dead campaigns.
  • Periodically the service itself gets banned from Telegram (they're running the mass-DM infrastructure from identifiable server IPs).

4. Bulk invite, why it's essentially dead

Real question from the data: "Do you know any tool/bot that can mass add people to Telegram Channels?"

The short answer: you mostly can't anymore.

Telegram's privacy settings historically let anyone add anyone to a group/channel. That was the gold age of mass invite. Around 2022-2023, Telegram tightened:

  • By default, new accounts now have "who can add me to groups" set to "my contacts only."
  • Even for users who never changed this, Telegram's anti-spam limits how many invites a single account can send.
  • You can invite your own contacts, but not strangers from scraped lists.

Current workarounds (all flawed):

  • Social engineering. Get the target to add you first, so you're a mutual contact. Impractical at scale.
  • Bot invites via a bot link. The bot can only invite if the user has interacted with it. Still requires initiation from the target.
  • Channel join links + promoted distribution. Not an invite, but a link you send the user. They have to click.

The "3,400 accounts artificially increasing invitations" anecdote in the data: This existed in old mass-invite operations. An operator runs a pool of 3,400 accounts, each with ~100 targets they can invite before the account's invite cap. Total = 340,000 invites attempted in one burst. Of those, maybe 10-20% succeed (target has open privacy settings). Result: 35-70k invited users. Of those, maybe 20-40% join. Account pool: decimated, most of the 3,400 accounts die.

Math: $10-20 per account × 3,400 accounts = $34-68k in account cost to generate ~10-28k channel joiners. That's a $2-7 CPA per joined user, which is terrible for OFM (a TG sub is worth <$1 on average conversion).

This approach has died as accounts got more expensive and Telegram's anti-invite tightened.


5. Bulk mention-all bots

"Mention all members" is a classic group feature. A bot tagged in a group can @mention every member so everyone gets a notification.

What works:

  • Public groups where you're an admin or where mention-all bots are permitted.
  • Your own channels/groups, to drive engagement on big posts.

What doesn't:

  • Mentioning everyone in a group you don't own (moderators will ban you instantly, bot will get reported).
  • Large groups (Telegram limits how many members a single message can mention).

Tools: various free bots in Telegram (@MentionAllBot, @AllMentionBot, others). Quality varies; many are defunct.

Use case: driving real-time attention to a high-value post in your own channel. Not a lead-generation tool.


Mass DM and scraping step into legal territory:

GDPR (EU):

  • Scraping usernames for bulk commercial messaging without consent is a GDPR violation.
  • Fines are theoretical for small operators (nobody comes after a 5-person OFM agency) but real at scale.
  • A data subject (one of your DM targets) has the right to demand deletion of their data from your scrape dump.

Spam laws (US CAN-SPAM, UK regulations, etc.):

  • These mostly target email but increasingly extend to messaging platforms.
  • Enforcement on Telegram mass DM has been minimal historically.

Platform TOS:

  • Telegram's TOS forbids automated message spam.
  • Violation leads to account deletion, not legal action.

Realistic stance: if you're a small operator, the legal risk is near-zero. If you're a large operator running thousands of DMs, you're exposed to some GDPR claims, especially if you're EU-based or targeting EU users.


7. Tooling categories

Open-source scrapers (Telethon-based):

  • GitHub has numerous Telethon scripts.
  • You write / configure your own.
  • Pros: free, customizable, no intermediary.
  • Cons: operational burden, you own the account burn.

SaaS scrape + mass DM services:

  • Pay $100-1000/mo for a service that does scraping and mass DM for you.
  • Pros: turnkey.
  • Cons: burns through your (or their) accounts; services disappear frequently; "results" are often inflated.

Custom-built agency tools:

  • Large OFM agencies build their own on top of Telethon + custom account management.
  • Pros: purpose-built, controlled.
  • Cons: high dev cost, constant maintenance.

Marketplace-sold mass-DM "bots":

  • Usually a wrapper around a free Telethon library being resold.
  • High scam rate.
  • If you're going to mass-DM, learning Telethon yourself is often cheaper in the medium term.

8. Realistic account math

If you're serious about mass DM at scale, the math:

Scenario: you want to send 10,000 first-contact DMs to a scraped list.

  • Each aged account: 100 DMs before likely freeze.
  • You need: 100 accounts.
  • Account cost (aged, ~$10-20 each): $1,000-2,000.
  • Proxy cost for 100 accounts: $500-1,500/mo.
  • Warmup time for pool: 14 days before first batch (if you don't have them warming already).
  • VPS / automation stack: $100-300/mo.

Total incremental cost for 10k DMs: $1,600-3,800 plus ~2 weeks of setup.

Expected results:

  • ~5,000-7,000 delivered (before accounts freeze mid-campaign).
  • 100-400 replies.
  • 20-80 meaningful conversations.
  • 2-15 converted to paying subs.

CPA: $100-1,500 per converted sub.

Compare to:

  • Targeted TG ads in niche channels: $200-400 per sub.
  • Organic funnel from Reddit/IG: $50-200 per sub.

Mass DM is usually not the cheapest route. It's the loudest and most attention-grabbing, but the unit economics often don't beat paid ads or organic funnel.


9. When does mass DM actually make sense?

Narrow cases where mass DM beats alternatives:

  • You have an extremely well-targeted scrape list. If you've scraped members of a hyper-specific niche group (say, a 10k-member "tall Scandinavian blondes fan club" and your model fits perfectly), conversion rates can jump 5-10x. Math works.
  • You already have a huge warmed account pool for other purposes. Marginal cost of running a mass DM campaign is low if you already have the accounts.
  • You're testing a new niche and need a quick signal on demand. Send 2k DMs, measure response, decide if the niche is worth building out.
  • You have a specific event to announce (new channel launch, high-value drop). The one-shot burst can work.

For general "grow my channel" acquisition: organic funnels and targeted paid ads beat mass DM consistently.


10. Warm-up considerations for mass-DM accounts

Accounts specifically for mass DM need a different warming approach than Cupid accounts:

  • Longer warming (18-21 days) before first mass-DM batch. The spam heuristic is stricter on mass-DM accounts than on organic-DM accounts because the pattern is higher-risk.
  • More "inbound" legitimacy. Send DMs to your own burners first; let them "reply"; build a two-way message graph before mass DM.
  • Vary content per account. Each account should have slightly different CTA text / link / tone. Identical mass-DM across 100 accounts is caught instantly.
  • Staggered start. Don't have all 100 accounts start mass DM at the same UTC minute. Spread over 6-24 hours.

11. Why the quality of the scraped list dominates outcomes

A 100k-member list of "active Telegram users generally" converts 10-50x worse than a 5k-member list of "people who engaged in the last week in a fitness channel that matches your model's niche."

  • Scraping freshness: target members who posted or reacted in the last 30 days, not all-time members.
  • Niche match: a fitness-model scrape should target fitness channels, not crypto or gaming.
  • Language: scrape based on visible language patterns to match your DM language.
  • Activity: filter out "last seen 6 months ago" users.

Most mass-DM failures come from bad lists, not bad accounts. Invest more in list curation than in account volume.


12. The "if you're going to do this, do it right" checklist

  • 100+ accounts warmed across a rolling 3-week pool.
  • One proxy per account.
  • Content varied per account (template engine with 20+ variations).
  • Targets narrowly scoped (<20k per campaign, hyper-niche).
  • Staggered send over 6-24 hours.
  • Reply handling via Cupid or team (if nobody handles replies, you waste the 5% who respond).
  • Track results per account/CTA/list to learn.

If you can't check all of these boxes, you're not actually running mass DM at scale, you're lighting money on fire on a hopeful account pool.


13. When to just pay for targeted ads instead

For most OFM operators asking about mass DM, paid sponsored posts in niche Telegram channels (Guide 12) are a much better use of the same budget.

  • $500 in sponsored posts in 3 well-vetted niche channels = 5-15k targeted views, 50-300 real clicks, 5-30 real conversations.
  • $500 in mass DM infrastructure = 500-1000 DMs sent (accounting for account burn), 5-50 replies, 2-15 conversations.

The ad route wins on CPA, effort, and account preservation. Mass DM wins only in narrow cases (Section 9).

Most operators who tried mass DM and "gave up on Telegram growth" should have tried paid niche channel posts instead. That's the conversion-efficient alternative.


Related guides