Telegram Scraper — Channel Messages & Media avatar

Telegram Scraper — Channel Messages & Media

Pricing

Pay per usage

Go to Apify Store
Telegram Scraper — Channel Messages & Media

Telegram Scraper — Channel Messages & Media

Scrape public Telegram channel messages without API keys or login. Extract message text, dates, view counts, forwards, reactions, and media info. Pagination support, date filtering, media detection. Export JSON, CSV, Excel. Social media monitoring.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

CryptoSignals Agent

CryptoSignals Agent

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Telegram Channel Scraper — Messages, Views & Media from Public Channels

Scrape public Telegram channel messages without API keys or authentication. Extract message text, dates, view counts, forward counts, and media metadata from any public Telegram channel.

This scraper uses Telegram's public web preview (t.me/s/) to extract messages — no Telegram API credentials, phone number verification, or Bot API token required. Just provide a channel username and get structured data in seconds.

Unlike Telegram API-based scrapers that require complex authentication flows, session files, and risk account bans, this scraper accesses only the publicly visible web preview. Safe, simple, and reliable.

Key Features

  • No authentication needed — no Telegram API key, phone number, or bot token required
  • Message text extraction — full message content with formatting preserved
  • View counts — see how many times each message was viewed (supports K/M notation)
  • Forward counts — track how often messages are shared
  • Date filtering — scrape messages within a specific date range
  • Media detection — identify messages with photos, videos, or other media
  • Auto-pagination — automatically loads older messages up to your limit
  • Structured JSON output — clean data ready for analysis or integration
  • Lightweight — pure HTTP requests, no browser or Telegram client needed

Use Cases

Use CaseDescription
Crypto & finance monitoringTrack crypto signal channels, trading alerts, and market commentary. Analyze which calls performed best by cross-referencing with price data.
News aggregationScrape news channels to build aggregated feeds. Telegram is often the fastest source for breaking news in many regions.
Competitive intelligenceMonitor competitor announcement channels. Track their product updates, feature releases, and marketing messages.
Content researchAnalyze what content formats (text, images, videos) drive the most views and forwards in your niche.
Influencer analysisTrack influencer channels to measure engagement rates, posting frequency, and audience reach over time.
Market researchMonitor industry-specific channels for trends, sentiment, and emerging topics.
Academic researchStudy information flow, misinformation patterns, or community dynamics on Telegram.
Brand monitoringTrack mentions of your brand in public Telegram channels. Identify unofficial fan channels or discussion groups.
Archival & backupCreate structured backups of public channel content for compliance, research, or reference purposes.
Lead generationMonitor channels where your target audience discusses problems you solve. Identify high-engagement topics.

Input Configuration

All Input Parameters

ParameterTypeDefaultDescription
channelUsernamestringChannel username without @ (e.g., durov, telegram) — required
maxMessagesinteger100Maximum number of messages to scrape (1–10,000)
dateFromstringOnly messages after this date (ISO format, e.g., 2026-01-01)
dateTostringOnly messages before this date (ISO format, e.g., 2026-12-31)
includeMediabooleanfalseExtract media metadata (photo/video presence and type)

Input Examples

Scrape latest messages from a channel

{
"channelUsername": "durov",
"maxMessages": 50
}

Get messages within a date range

{
"channelUsername": "telegram",
"maxMessages": 500,
"dateFrom": "2026-01-01",
"dateTo": "2026-03-01"
}

Scrape with media detection

{
"channelUsername": "bbcnews",
"maxMessages": 200,
"includeMedia": true
}

Large-scale channel archive

{
"channelUsername": "techcrunch",
"maxMessages": 5000,
"includeMedia": true
}

Output Schema

Each message returns structured data:

{
"messageId": 1234,
"channel": "durov",
"text": "We just hit 1 billion monthly active users on Telegram. Thank you all for being part of this journey.",
"date": "2026-03-15T14:30:00+00:00",
"views": 15400000,
"forwards": 28500,
"url": "https://t.me/durov/1234",
"hasPhoto": true,
"hasVideo": false,
"mediaType": "photo"
}

Output Fields

FieldTypeDescription
messageIdintegerUnique message ID within the channel
channelstringChannel username
textstringFull message text content
datestringISO 8601 timestamp of the message
viewsintegerNumber of views (parsed from K/M notation)
forwardsintegerNumber of times the message was forwarded
urlstringDirect link to the message on Telegram
hasPhotobooleanWhether the message contains a photo (when includeMedia is true)
hasVideobooleanWhether the message contains a video (when includeMedia is true)
mediaTypestringType of media attachment (when includeMedia is true)

How to Use with the Apify API

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
# Scrape a Telegram channel
run = client.actor("cryptosignals/telegram-channel-scraper").call(run_input={
"channelUsername": "durov",
"maxMessages": 100,
"includeMedia": True,
})
# Process results
dataset = client.dataset(run["defaultDatasetId"])
for msg in dataset.iterate_items():
views = msg.get("views", 0) or 0
print(f"[{msg['date'][:10]}] {views:,} views — {msg['text'][:100]}...")

JavaScript / TypeScript

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("cryptosignals/telegram-channel-scraper").call({
channelUsername: "telegram",
maxMessages: 200,
dateFrom: "2026-01-01",
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((msg) => {
console.log(`${msg.views?.toLocaleString() ?? "?"} views: ${msg.text?.slice(0, 80)}`);
});

cURL

# Start a scraping run
curl -X POST "https://api.apify.com/v2/acts/cryptosignals~telegram-channel-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channelUsername": "durov", "maxMessages": 50}'
# Get results
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"

Integrations

Telegram Channel Scraper works with all Apify integrations:

  • Google Sheets — export messages to a spreadsheet for analysis
  • Slack — forward important Telegram messages to your Slack workspace
  • Webhooks — trigger notifications when scraping completes
  • Zapier / Make — connect to 5,000+ apps for automated workflows
  • Schedule — run hourly or daily to monitor channels continuously
  • API — call programmatically from Python, JavaScript, or any language

How It Works

This scraper uses Telegram's public web preview at t.me/s/ — the same interface you see when viewing a channel in a web browser without being logged in. It:

  1. Loads the channel's web preview page
  2. Parses message elements including text, dates, and engagement metrics
  3. Paginates backward through message history using AJAX requests
  4. Filters by date range if specified
  5. Returns structured JSON for each message

No Telegram client, session file, or API credentials are involved at any point.

Performance

  • ~60 messages per minute throughput
  • Automatic pagination handles channels with thousands of messages
  • Built-in rate limiting and retry logic
  • Lightweight HTTP-only — no browser overhead

Pricing

Try it free — then just $4.99/month after April 3, 2026. No per-message fees. Unlimited runs.

Platform compute costs typically under $0.50 per run.

FAQ

Do I need a Telegram account or API key? No. This scraper uses Telegram's public web preview, which requires no authentication whatsoever.

Can I scrape private channels or groups? No. Only public Telegram channels with a t.me/s/ web preview are supported. Private channels, groups, and chats are not accessible.

How many messages can I scrape? Up to 10,000 messages per run. For channels with a very long history, use date filtering to scrape in batches.

Are message reactions included? The web preview does not expose reaction data. Views and forward counts are included.

Is this safe to use? Will my Telegram account get banned? This scraper does not use a Telegram account at all. It accesses public web pages — there's nothing to ban.

How far back can I scrape? As far as the channel's web preview allows. Most channels expose their full history through the web preview.