Telegram Contact Extractor - Emails & Admin Handles avatar

Telegram Contact Extractor - Emails & Admin Handles

Pricing

$1.50 / 1,000 per channel with a contact founds

Go to Apify Store
Telegram Contact Extractor - Emails & Admin Handles

Telegram Contact Extractor - Emails & Admin Handles

You pay only for channels where a contact is actually found. Pulls the email, phone, website and contact @handle a public Telegram channel publishes in its bio and recent posts, each with the evidence it came from. Measured on 40 real business channels: 50% published a contact route. No login.

Pricing

$1.50 / 1,000 per channel with a contact founds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Telegram Contact Extractor — Emails, Phones & Admin Handles

Finds the ways to actually reach a public Telegram channel: the email, phone number, website and the @handle the channel names for ads or business — pulled from its bio and its 20 most recent posts, each tagged with the evidence it was read from.

You pay only for channels where a contact was found. Channels that publish nothing are listed in the run summary and cost you nothing.

No login. No phone number. No API key. No Telegram account of any kind.


The measured hit rate

Run against 40 real business channels (crypto, forex, NFT, marketing agencies, dropshipping, Dubai real estate — discovered, not cherry-picked), 2026-09-15:

channelsrate
At least one contact found26 / 4065%
…with an explicit contact label next to it18 / 4045%
Published nothing — not charged14 / 4035%

That 65% is the number to plan a budget against. It is not 100%, and an extractor that claimed it would be lying: a third of business channels simply publish no way to reach them.

What one row looks like

{
"channel": "agency605",
"channelTitle": "605 Agency",
"subscribers": 782,
"contactCount": 2,
"hasExplicitContact": true,
"primaryContact": "@duvduvgap_manager",
"primaryContactType": "telegram",
"telegramContacts": ["@duvduvgap_manager", "@agency_605"],
"emails": [], "phones": [], "websites": [],
"contacts": [
{ "type": "telegram", "value": "@duvduvgap_manager", "source": "post",
"confidence": "explicit",
"evidence": "ro'yxatda o'tish uchun managerga bog'laning: @duvduvgap_manager" },
{ "type": "telegram", "value": "@agency_605", "source": "bio",
"confidence": "inferred",
"evidence": "Aloqa uchun: @agency_605" }
],
"postsScanned": 7
}

That is a real row from the measured run, and it shows the design working on a channel that is not in English: the post handle is explicit because "managerga" matched a contact cue, while the bio handle is inferred — "Aloqa uchun" is Uzbek for "for contact" and is not in the cue list, so the extractor stayed conservative and labelled it rather than guessing. Both are real contacts; the confidence field tells you which one the Actor is sure about.

fieldwhat it is
primaryContactThe best single contact, already ranked — work the list top-down
hasExplicitContacttrue when a contact word sat next to it. Filter on this for your highest-intent list
emails · phones · websites · telegramContactsEach type on its own, ready to paste into a CRM
contacts[].evidenceThe surrounding text it was read from, so you can see why it was called a contact
contacts[].confidenceexplicit (labelled) or inferred (present, unlabelled)
contacts[].sourcebio or post

Why it isn't just a regex for @

Every Telegram post mentions somebody. A naive extractor returns an @handle for 100% of channels and almost all of it is worthless — other channels, cross-promos, people being quoted.

So a handle in the post stream only counts when a contact word sits next to it — contact, for ads, manager, admin, sales, реклама, по вопросам, contacto, werbung, iletişim and others, because these channels are not all in English. In the bio a handle counts on its own (that's the channel's own contact block), except the channel's own handle — which is not a way to reach anybody. Phone numbers are accepted only in international + format, because a bare run of digits in a crypto post is a price, not a number you can call.

Every one of those rules is verified offline against real captured pages before each release.

Three different kinds of nothing

The run summary keeps them apart, because they mean different things for your list — and none of them is charged:

  • noContactFound — a real channel that publishes no contact route
  • noPublicPreview — private, preview disabled, or not a channel at all
  • unreachable — we could not fetch it after 3 attempts on 3 separate proxy sessions

A channel is only ever reported as "no contact" when the page was actually read.

Pricing

Pay per event: $0.0015 per channel with a contact found, and no run-start fee.

At the measured 65% hit rate that works out to $0.000975 per channel scanned — under the cheapest per-channel rate in the Telegram category, which also charges a $0.003 start fee on top. Scanning 1,000 channels costs about $0.98 and returns roughly 650 contactable ones.

Nothing found means nothing charged, for the whole run.

Source

t.me/s/<channel> is Telegram's own public web preview, served to any visitor. The host publishes no robots.txt at all. These contact details are published by channel owners specifically so people can reach them — but you are responsible for how you use them, which for outreach means the marketing and data-protection rules wherever you are sending from (GDPR, CAN-SPAM, PECR and equivalents).