Telegram Channels Scraper: Messages, Contacts & Leads avatar

Telegram Channels Scraper: Messages, Contacts & Leads

Pricing

from $2.00 / 1,000 messages

Go to Apify Store
Telegram Channels Scraper: Messages, Contacts & Leads

Telegram Channels Scraper: Messages, Contacts & Leads

Extract message history, view counts, reactions, media URLs, links, emails, and channel metadata from public Telegram channels. No API key or login required.

Pricing

from $2.00 / 1,000 messages

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

Telegram Channel Scraper — Messages, Media & Lead Data

Extract full message history, engagement metrics, media URLs, external links, email addresses, and channel metadata from any public Telegram channel or group. No API key. No Telegram account. No login required.

Works with the Apify MCP Server — Claude and ChatGPT can call this actor directly via natural language.


What does this Telegram Channel Scraper do?

This actor scrapes the public web preview of any Telegram channel (t.me/s/channelname) and returns two types of structured records:

Channel Info — metadata scraped once per channel: title, description, subscriber count, verification status, and avatar URL.

Messages — one record per post, including full text, timestamp, view count, reaction breakdown, forwarded-from source, media type and URL, all external links embedded in the message, and email addresses extracted from the message text.

The actor paginates automatically by following Telegram's ?before=N URL pattern, going as far back as your maxMessagesPerChannel or oldestMessageDate limit requires.

Ideal for: lead generation, brand monitoring, competitive intelligence, crypto/DeFi research, OSINT, market sentiment, and AI pipeline data ingestion.


What data can you extract from Telegram channels?

Message Fields

FieldTypeExample
record_typestring"message"
channel_usernamestring"durov"
message_idstring"18423"
message_textstring or null"Announcing a major new feature..."
posted_atISO datetime"2026-03-28T12:00:00+00:00"
view_countinteger or null452000
reaction_countinteger1840
reactionsarray or null[{"emoji":"❤️","count":980}]
is_forwardedbooleanfalse
forwarded_fromstring or null"@cryptonews"
has_mediabooleantrue
media_typestring or null"photo"
media_urlstring or null"https://cdn5.telegram-cdn.org/..."
extracted_linksarray["https://example.com"]
extracted_emailsarray["contact@example.com"]
message_urlstring"https://t.me/durov/18423"

Channel Info Fields

FieldTypeExample
record_typestring"channel_info"
channel_titlestring"Pavel Durov"
channel_usernamestring"durov"
channel_urlstring"https://t.me/durov"
channel_descriptionstring or null"Founder of Telegram and VK."
is_verifiedbooleantrue
subscriber_countinteger or null1250000
photo_countinteger or null842
video_countinteger or null315

How to scrape Telegram channels

  1. Click "Try for free" to open the actor in Apify Console
  2. Enter one or more channel usernames in the channels field (e.g. durov, @telegram, https://t.me/bitcoin)
  3. Set Max messages per channel (default: 100)
  4. Optionally set an oldest message date to limit how far back to scrape
  5. Click Start and download your results as JSON, CSV, or Excel

Input examples

{
"channels": ["durov", "bitcoinmagazine", "https://t.me/cryptonews"],
"maxMessagesPerChannel": 500,
"oldestMessageDate": "2026-01-01",
"includeChannelInfo": true,
"includeMedia": true,
"includeReactions": true
}

Using with AI agents (Claude, ChatGPT via MCP)

Connect via the Apify MCP Server and ask:

"Get the last 200 messages from @bitcoinmagazine with any links and emails they posted"

"Scrape the telegram channel @cryptonews since January 2026 and extract all external links"

"Monitor these 5 Telegram channels for new posts in the last 7 days"

The AI will automatically run this actor and return structured results.


Lead generation with Telegram scraping

Telegram is a goldmine for B2B and niche leads — channel admins frequently post contact emails, website URLs, and landing pages directly in their messages. This actor's extracted_links and extracted_emails fields surface these automatically.

Common lead gen workflows:

  • Scrape niche industry channels (crypto, SaaS, e-commerce, agencies) → filter extracted_emails → build outreach list
  • Monitor competitor channels → identify promoted products and partner sites via extracted_links
  • Discover related channels via forwarded_from → expand your prospecting universe
  • Track high-view-count posts to identify viral content and hot topics in your market

How much does it cost?

Pricing is pay-per-event — you only pay for data you actually receive.

EventPrice
Actor start fee$0.003
Per message scraped$0.002
Per channel info record$0.001

Example: 1,000 messages from 5 channels = $2.00 + $0.005 for 5 channel info records + $0.003 start fee = ~$2.01 total

No monthly fees. No minimums. Apify offers $5 in free credits to new users.


API & Integration

REST API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~telegram-channel-scraper/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channels": ["durov", "telegram"],
"maxMessagesPerChannel": 100,
"includeChannelInfo": true
}'

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('khadinakbar/telegram-channel-scraper').call({
channels: ['durov', 'telegram'],
maxMessagesPerChannel: 200,
oldestMessageDate: '2026-01-01',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const messages = items.filter(r => r.record_type === 'message');
const channelInfo = items.filter(r => r.record_type === 'channel_info');

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('khadinakbar/telegram-channel-scraper').call(
run_input={
'channels': ['durov', 'telegram'],
'maxMessagesPerChannel': 200,
'oldestMessageDate': '2026-01-01',
}
)
items = list(client.dataset(run['defaultDatasetId']).iterate_items())
messages = [r for r in items if r['record_type'] == 'message']

Integrations

Connects out of the box with: Apify MCP Server (Claude, ChatGPT), Make.com, Zapier, n8n, LangChain, Google Sheets, Slack webhooks


Use cases

Lead Generation — extract emails and links from niche Telegram communities to build targeted outreach lists for cold email campaigns.

Brand Monitoring — track mentions and discussions about your product or brand across multiple Telegram channels simultaneously.

Competitive Intelligence — monitor what your competitors are posting, what they're promoting, and which sites they're linking to.

Crypto & DeFi Research — scrape token announcement channels, trading signal groups, and project update feeds for real-time market intelligence.

OSINT & Investigation — gather open-source intelligence from public Telegram channels. Identify networks of related channels via forwarded_from chains.

Market Sentiment — collect and analyze message text from trading/investment channels for sentiment scoring and AI analysis.

Content Archiving — export complete message history from public channels to CSV or JSON for research, compliance, or archival workflows.

AI Pipeline Data — feed structured Telegram data into RAG systems, vector databases, or LLM analysis workflows via the Apify MCP Server.


FAQ

Q: Does this require a Telegram account or API key? A: No. This actor scrapes Telegram's public web preview (t.me/s/) — the same pages visible to anyone in a browser. No account, API key, or bot token required.

Q: Can it scrape private channels or groups? A: No. Only public channels accessible via t.me/s/channelname are supported. Private channels require authentication, which is outside the scope of this actor.

Q: Can it extract member lists? A: Telegram does not expose individual member lists on public web pages. However, this actor extracts the total subscriber count, and the extracted_emails and forwarded_from fields provide high-value lead generation signals from message content.

Q: How far back can it go? A: The actor paginates through a channel's full message history. Use maxMessagesPerChannel or oldestMessageDate to control depth. Very large channels (100k+ messages) will take longer and cost more.

Q: How fast does it run? A: Approximately 50–150 messages per minute depending on channel size and proxy response times. Multiple channels are scraped in parallel (up to 3 concurrent).

Q: Is scraping Telegram legal? A: This actor only accesses publicly available data on t.me/s/ — the same content visible to any web user without logging in. See Apify's guide on web scraping legality. Always ensure your use case complies with Telegram's Terms of Service and applicable data regulations.

Q: Can I schedule it to monitor channels regularly? A: Yes — use Apify's built-in scheduler to run daily, weekly, or at any interval. Combine with oldestMessageDate (set to yesterday) for incremental monitoring without re-scraping old content.


Works great with


Support

Found a bug or need a feature? Open an issue on GitHub or contact us via the Apify Actor page. Response time: within 48 hours.


Changelog

v1.0 — Initial release. Full message history scraping, channel metadata, email and link extraction, view counts, reactions, media URLs, PAY_PER_EVENT pricing.