Telegram Scraper — Channel Messages & Media
Pricing
$3.00 / 1,000 result scrapeds
Telegram Scraper — Channel Messages & Media
Extract messages and media from public Telegram channels. Get message text, author, timestamp, views, forwards, and media URLs. Ideal for OSINT, crypto monitoring, and content research. PPE pricing — pay only for results.
Pricing
$3.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Web Data Labs
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
Telegram Channel Scraper
Scrape public Telegram channels — messages, media metadata, view counts, and forwarding stats. No Telegram API key or account login required. Works with any public channel via its t.me URL.
Useful for media monitoring, crypto/finance signal tracking, news aggregation, and audience research.
What data do you get?
Each message record includes:
| Field | Type | Description |
|---|---|---|
message_id | integer | Unique message ID within the channel |
channel | string | Channel username |
date | string | ISO 8601 timestamp |
text | string | Full message text |
views | integer | View count |
forwards | integer | Number of times forwarded |
url | string | Direct link to the message |
has_photo | boolean | Whether the message contains a photo (when includeMedia is on) |
has_video | boolean | Whether the message contains a video |
has_document | boolean | Whether the message has an attached document |
photo_url | string | Direct URL to the photo (when available) |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
channelUsername | string | Yes | telegram | Channel username without @. Also accepts full t.me URLs. |
maxMessages | integer | No | 5 | Maximum messages to scrape (1–10,000) |
dateFrom | string | No | — | Only include messages after this date (ISO format, e.g. 2026-01-01) |
dateTo | string | No | — | Only include messages before this date |
includeMedia | boolean | No | false | Extract media metadata (photo/video/document flags and URLs) |
Example input
{"channelUsername": "durov","maxMessages": 50,"includeMedia": true}
Example output
{"message_id": 1247,"channel": "durov","date": "2026-03-28T10:15:00+00:00","text": "Today we launched the new privacy features that let you control exactly who can see your online status...","views": 182400,"forwards": 3210,"url": "https://t.me/durov/1247","has_photo": true,"photo_url": "https://cdn4.telegram-cdn.org/file/abc123.jpg"}
Using the Apify API
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("cryptosignals/telegram-channel-scraper").call(run_input={"channelUsername": "durov","maxMessages": 100,"includeMedia": True,})for msg in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"[{msg['date']}] {msg['text'][:80]}... ({msg['views']} views)")
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('cryptosignals/telegram-channel-scraper').call({channelUsername: 'durov',maxMessages: 100,includeMedia: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(msg => console.log(`${msg.date}: ${msg.text.slice(0, 80)}...`));
Tips
- Public channels only — private channels and groups are not accessible without authentication
- Channel username formats — you can use
durov,@durov, orhttps://t.me/durov— all work - Date filtering — combine
dateFromanddateToto scrape a specific time range without pulling the entire history - Media URLs — photo URLs from Telegram CDN may expire. Download them promptly if you need to archive media.
Proxies and rate limits
Telegram's web preview endpoint (t.me/s/) applies per-IP rate limits after sustained scraping, returning 429 errors or temporary bans. Residential proxies rotate through real ISP addresses and stay under per-IP thresholds.
ThorData offers 200M+ residential IPs across 190+ countries — reliable for scraping Telegram channels at scale without hitting rate limits.
Set proxy configuration in your input:
{"proxyConfiguration": {"useApifyProxy": true}}
Related scrapers
- Reddit Scraper — Posts, comments and community data
- Bluesky Scraper — Social posts and profiles
- Substack Scraper — Newsletter content and authors
- Hacker News Scraper — Tech stories and discussions
Built by cryptosignals