Telegram Scraper
Pricing
Pay per event
Telegram Scraper
Scrape public Telegram channels without API keys or login. Extract messages, view counts, reactions, media URLs, and channel metadata. Just enter a channel username — no credentials needed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
32
Total users
16
Monthly active users
21 hours ago
Last modified
Categories
Share
Telegram Channel Scraper
Telegram Channel Scraper extracts messages, view counts, reactions, media URLs, and channel metadata from any public Telegram channel — without an API key, Telegram account, or login. Telegram has over 950 million monthly active users and hosts 500,000+ active public channels covering news, crypto, tech, and communities worldwide. This actor scrapes any of these public channels via their web preview pages at a cost of $0.001 per message.
How to scrape Telegram without an API key
Most Telegram scrapers require developer API credentials (api_id and api_hash from my.telegram.org). This actor needs zero credentials — it scrapes Telegram's public web preview pages (t.me/s/) directly, the same pages anyone can visit in a browser. Just enter a channel username like durov or bbcnews and the actor handles everything: pagination, rate limiting, and data extraction.
What does Telegram Channel Scraper do?
This actor scrapes public Telegram channels via their web preview pages (t.me/s/). It extracts:
- Messages with full text, HTML formatting, timestamps, and permalink URLs
- View counts parsed as integers (not raw strings like "5.29M")
- Reactions with emoji identifiers and counts (including paid Telegram Stars)
- Media — photo thumbnails, video CDN URLs with duration
- Link previews — URL, site name, title, description, preview image
- Channel metadata — title, description, subscriber count, photo/video/link counts, verified badge
- Message context — edited flag, forwarded-from source, reply-to message ID, author signature
Why use this scraper instead of others?
- Zero credentials — no Telegram API key, no
api_id/api_hash, no phone number, no login. Just enter a channel username and go. Most competing scrapers require Telegram developer credentials. - Reactions data — the only Apify Telegram scraper that extracts reaction emoji and counts, including paid Telegram Stars.
- Parsed view counts — views returned as integers (
5290000), not raw strings ("5.29M"). Ready for analysis without post-processing. - Media URLs — actual photo and video CDN URLs, not just text content.
- Rich message context — edited flag, forwarded-from, reply-to chains, author signatures, link previews with images.
- Pay per result — transparent per-message pricing. No monthly subscription.
Use cases
Marketing and brand teams
- Brand monitoring — track mentions and discussions in public Telegram channels
- Competitive research — analyze competitor Telegram channels for content strategy and engagement
- Community insights — understand what your audience discusses in public Telegram communities
Finance and crypto teams
- Crypto/DeFi intelligence — monitor token announcements, pump channels, and project updates
- Market sentiment — track discussions in trading and investment channels for sentiment signals
Research and intelligence
- Media monitoring — scrape news channels for breaking stories and sentiment analysis
- Academic research — collect public discourse data from Telegram communities for social studies
- OSINT — gather open-source intelligence from public channels for investigative work
What data can you extract?
Channel metadata
| Field | Example |
|---|---|
title | Pavel Durov |
description | Founder of Telegram. |
subscriberCount | 10.5M |
verified | true |
avatarUrl | https://cdn4.telesco.pe/... |
Messages (25+ fields per message)
| Field | Example |
|---|---|
messageId | 455 |
text | Someone made a game about me... |
date | 2025-10-31T14:12:20+00:00 |
views | 5290000 |
author | Paul Du Rove |
mediaType | video |
videoUrl | https://cdn4.telesco.pe/... |
reactions | [{emoji: "⭐", count: "39.3K", isPaid: true}] |
isEdited | true |
isForwarded | false |
replyToMessageId | 442 |
url | https://t.me/durov/455 |
How much does it cost to scrape Telegram?
This actor uses pay-per-event pricing — you only pay for what you scrape. No monthly subscription.
| Event | Cost |
|---|---|
| Actor start | $0.005 |
| Per channel info | $0.002 |
| Per message | $0.001 |
Real-world cost examples:
| Query | Messages | Cost |
|---|---|---|
| 1 channel, 20 messages | 20 | $0.005 + $0.002 + 20 × $0.001 = $0.027 |
| 1 channel, 100 messages | 100 | $0.005 + $0.002 + 100 × $0.001 = $0.107 |
| 5 channels, 50 messages each | 250 | $0.005 + 5 × $0.002 + 250 × $0.001 = $0.265 |
With the Apify Free plan, you get $5 of free usage per month — enough to scrape ~4,900 messages.
How to scrape a Telegram channel
- Go to the actor's input page.
- Enter one or more channel usernames (e.g.,
durov,telegram). - Set max messages per channel (default: 100, prefill: 20).
- Optionally toggle Include channel info to get metadata.
- Click Start and wait for the run to finish.
- Download your data in JSON, CSV, Excel, or connect via API.
How do I scrape Telegram channels and groups?
| Field | Type | Description | Default |
|---|---|---|---|
channels | string[] | Public Telegram channel usernames | — |
maxMessages | integer | Max messages per channel (1–5,000) | 100 |
includeChannelInfo | boolean | Include channel metadata as separate item | true |
Finding channel usernames
A channel username is the part after t.me/ in the channel URL:
https://t.me/durov→ username isdurovhttps://t.me/telegram→ username istelegram
You can also use the @ prefix — the actor strips it automatically.
What data can I extract from Telegram?
{"messageId": 455,"channelUsername": "durov","channelTitle": "Pavel Durov","url": "https://t.me/durov/455","date": "2025-10-31T14:12:20+00:00","text": "Someone made a game about me escaping a French prison...","views": 5290000,"viewsRaw": "5.29M","author": "Paul Du Rove","isEdited": true,"isForwarded": false,"mediaType": "video","videoUrl": "https://cdn4.telesco.pe/file/...","videoDuration": "0:18","reactions": [{"emoji": "⭐", "count": "39.3K", "isPaid": true},{"emoji": "", "emojiId": "5265077361648368841", "count": "86K", "isPaid": false}],"scrapedAt": "2026-03-05T21:00:39.599Z"}
Tips for best results
- Start small — use
maxMessages: 20to preview data before large runs. - Public channels only — this actor scrapes
t.me/s/public preview pages. Private channels and groups are not accessible. - Rate limiting — the actor paginates politely. For very large channels (5,000+ messages), expect runs to take a few minutes.
- Reactions availability — reactions appear in the HTML for recent messages. Very old messages may not include reaction data.
- Media URLs — video and photo CDN URLs are temporary. Download media promptly if you need to archive it.
How to export Telegram chat history to CSV
Telegram's built-in export only works for your own chats and requires the desktop app. To export any public channel's message history to CSV — including channels you don't belong to — use Telegram Channel Scraper:
- Open Telegram Channel Scraper on Apify Store.
- Enter the channel username (e.g.,
durov,telegram,bbcnews). - Set Max messages to the number of messages you want to export (up to 5,000 per run).
- Enable Include channel info if you want subscriber count and metadata.
- Click Start and wait for the run to finish (usually under a minute).
- Open the Dataset tab and click Export → CSV.
- Open the downloaded
.csvin Excel, Google Sheets, or any data tool.
Each row in the CSV represents one message with columns for: messageId, date, text, views, author, mediaType, reactions, isForwarded, url, and more.
Tips for large exports:
- Run multiple sessions with different date ranges if you need more than 5,000 messages.
- Use the JSON export instead of CSV if you need nested reaction data (CSV flattens arrays).
- Schedule recurring daily scrapes to build a running archive of channel activity over time.
Integrations
Connect Telegram Channel Scraper to your workflow using Apify integrations:
- Google Sheets — export messages directly to a spreadsheet for tracking channel activity over time
- Slack / Discord — get notifications when scraping finishes, or forward key messages to your team channels
- Zapier / Make — automate workflows, e.g., alert on crypto announcements, archive news channel content, or trigger analysis when new messages arrive
- Webhooks — send results to your own API endpoint for custom processing pipelines
- Scheduled runs — set up hourly or daily scrapes to continuously monitor channels
- Data warehouses — pipe messages to BigQuery, Snowflake, or PostgreSQL for large-scale analysis
- AI/LLM pipelines — feed messages into sentiment analysis, translation, or summarization workflows
Using the Apify API
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/telegram-scraper').call({channels: ['durov', 'telegram'],maxMessages: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("automation-lab/telegram-scraper").call(run_input={"channels": ["durov"],"maxMessages": 100,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsfor item in items:if "messageId" in item:print(f"[{item['date']}] {item['views']} views: {item['text'][:80]}")
cURL
curl "https://api.apify.com/v2/acts/automation-lab~telegram-scraper/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"channels":["durov"],"maxMessages":50}'
Is it legal to scrape Telegram?
This actor only accesses publicly available data from Telegram's own public web preview pages (t.me/s/). It does not:
- Access private channels or groups
- Require authentication or user credentials
- Extract personal data like phone numbers
- Bypass any access controls
Always review Telegram's Terms of Service and comply with applicable data protection laws (GDPR, CCPA) when processing scraped data.
Use with AI agents via MCP
Telegram Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP). This lets you use natural language to scrape data — just ask your AI assistant and it will configure and run the scraper for you.
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Scrape the last 500 messages from this Telegram channel"
- "Get channel info and recent posts from @durov"
Learn more in the Apify MCP documentation.
What is a Telegram channel vs. a Telegram group?
A Telegram channel is a broadcast tool where only admins post messages to unlimited subscribers. Channels are one-to-many: subscribers read messages but typically cannot reply. Examples include news outlets (BBC, CNN), crypto projects, brand announcements, and influencer updates. Channels display view counts on every message.
A Telegram group is a many-to-many chat where all members can send messages. Groups support up to 200,000 members and are used for discussions, communities, and team communication.
This actor scrapes public channels only — channels that have a web preview at t.me/s/CHANNEL_NAME. Private channels, groups, and supergroups are not accessible without authentication.
FAQ
Q: Do I need a Telegram account or API key? No. This actor scrapes public web pages — no Telegram credentials needed.
Q: Can I scrape private channels or groups?
No. Only public channels with a t.me/s/ preview page are supported.
Q: How many messages can I get? Up to 5,000 per channel per run. The actor paginates automatically through the channel history.
Q: Why are some reaction emojis empty?
Custom Telegram emojis are identified by emojiId rather than a Unicode character. The standard emojis (thumbs up, heart, etc.) show the Unicode emoji.
Q: How is this different from other Telegram scrapers on Apify?
Most competitors require Telegram API credentials (api_id/api_hash). This actor needs zero credentials — just enter a channel username. It also extracts reactions, parsed view counts, and media URLs that competitors miss.
Q: The scraper returns no messages for a channel — what's wrong?
Check that the channel has a public web preview at t.me/s/CHANNEL_NAME. If visiting that URL in a browser shows a "You can view and join" message instead of posts, the channel doesn't have public preview enabled. Only channels with public web previews can be scraped.
Q: Media URLs are broken or return 404 — how do I fix this? Telegram CDN URLs are temporary and expire after some time. If you need to archive media, download the files immediately after scraping. The scraper extracts the URLs as they appear at scraping time, but Telegram may rotate CDN links.
Other social media scrapers
- Threads Scraper — scrape Meta Threads posts, profiles, and search results
- TikTok Scraper — scrape TikTok profiles and video details
- Instagram Scraper — scrape Instagram posts, profiles, and reels
- Twitter/X Scraper — scrape tweets and user profiles
- Reddit Scraper — scrape Reddit posts and comments
- Bluesky Scraper — scrape Bluesky posts and profiles
- YouTube Scraper — scrape YouTube videos, channels, and comments