Telegram Channel Scraper (Posts, Views, Reactions)
Pricing
from $0.70 / 1,000 post scrapeds
Telegram Channel Scraper (Posts, Views, Reactions)
Scrape posts from any public Telegram channel without login or API keys: text, date, views, reactions, photos, videos, links and forwards, plus channel title, subscribers and description. Full history with pagination. Export to Excel, CSV or JSON.
Pricing
from $0.70 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
Julio Barcellos Rangel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Telegram Channel Scraper collects posts from public Telegram channels with no login, no phone number and no API keys: text, date, views, reactions, photos, videos, links and forwards, plus the channel's title, subscriber count and description on every row. It is made for marketers, researchers, journalists, crypto and news watchers who need a Telegram channel scraper to export Telegram posts to Excel, CSV or JSON. It pages back through the channel history, so you can export thousands of posts per channel.
What does Telegram Channel Scraper do?
You give it channel usernames or links. For each channel, the scraper reads the channel's public web preview (the page at t.me/s/<channel>) and pages back from the newest post until it reaches your limit, your start date or the first post of the channel.
It accepts:
- Usernames:
durov - Usernames with @:
@telegram - Channel links:
https://t.me/durovorhttps://t.me/s/durov - Post links:
https://t.me/durov/529(the scraper reads the whole channeldurov)
Each post becomes one row with the post text (line breaks kept), date, view count, reactions, media links and forward source. The channel's title, username, subscriber count, description and verified badge are repeated on every row, so the table is ready to filter and sort.
What data can you extract?
| Field | What it means | Example |
|---|---|---|
channel | Channel username you entered | durov |
channelTitle | Channel name | Pavel Durov |
channelUsername | Channel username as Telegram shows it | durov |
subscribers | Subscriber count shown on the preview page | 10400000 |
channelDescription | Channel description | Founder of Telegram. |
channelVerified | true when the channel has the verified badge | true |
postId | Post number inside the channel | 548 |
url | Link to the post | https://t.me/durov/548 |
text | Post text with line breaks (empty for posts with no text) | 🤝 Telegram has become the sponsor of Codeforces… |
date | Post date and time (ISO 8601) | 2026-09-11T16:04:02+00:00 |
views | View count | 2800000 |
author | Signature of the author, when the channel signs posts | Pavel Durov |
forwardedFrom | Name of the source when the post is a forward | null |
isEdited | true when the post was edited | false |
photos | Image URLs in the post | [] |
video | Video URL in the post | https://cdn4.telesco.pe/file/f4b10a0c75.mp4?token=… |
hasDocument | true when a file is attached | false |
links | Web links inside the post text | ["https://codeforces.com/blog/entry/156620"] |
reactions | List of reactions with emoji and count | [{"emoji": "paid-stars", "count": 21800}] |
totalReactions | Sum of all reaction counts | 77090 |
scrapedAt | When the post was scraped (ISO 8601) | 2026-10-10T20:31:49.377Z |
error | Only on error rows: why no posts came back | Channel not found or has no public preview |
About reactions: each item has emoji and count. emoji is the emoji itself for standard reactions, custom:<id> for custom emoji reactions, and paid-stars for paid Telegram Stars reactions.
How to use Telegram Channel Scraper
- Open Telegram Channel Scraper in Apify Console.
- Add channels to Channels, one per line (
durov,@telegram,https://t.me/durov). - Set Max posts per channel (default 100). Use a high number for the full history.
- Optional: pick a date in Only posts newer than to get only recent posts.
- Click Start and wait for the run to finish.
- Open the Output tab and export the posts as JSON, CSV, Excel or HTML.
To monitor channels, save the input as a task with a start date and schedule it daily.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
channels | list of text (required) | ["durov"] | Public channel usernames or links, for example durov, @telegram or https://t.me/durov. |
maxPostsPerChannel | integer | 100 | Maximum posts per channel, newest first. From 1 to 100,000. The scraper pages back through the history until this limit. |
onlyPostsNewerThan | date (YYYY-MM-DD) | empty | Only returns posts from this date on. The scraper stops when it reaches older posts. |
proxy | object | { "useApifyProxy": true } | Apify Proxy settings. The default works for most runs. |
Example input:
{"channels": ["durov", "@telegram", "https://t.me/contest"],"maxPostsPerChannel": 500,"onlyPostsNewerThan": "2026-01-01","proxy": { "useApifyProxy": true }}
Output example
One real post from a recent run:
{"channel": "durov","channelTitle": "Pavel Durov","channelUsername": "durov","subscribers": 10400000,"channelDescription": "Founder of Telegram.","channelVerified": true,"postId": 548,"url": "https://t.me/durov/548","text": "🤝 Telegram has become the sponsor of Codeforces — the largest competitive programming platform in the world. \n\n ⚡CodeForces organizes over 100 coding contests every year and has 4 million contestants signed up.…","date": "2026-09-11T16:04:02+00:00","views": 2800000,"author": "Pavel Durov","forwardedFrom": null,"isEdited": false,"photos": [],"video": null,"hasDocument": false,"links": ["https://codeforces.com/blog/entry/156620"],"reactions": [{ "emoji": "paid-stars", "count": 21800 },{ "emoji": "custom:5399847211989246390", "count": 35300 },{ "emoji": "custom:5936157098181135162", "count": 10300 },{ "emoji": "custom:5373223594484587136", "count": 9690 }],"totalReactions": 77090,"scrapedAt": "2026-10-10T20:31:49.377Z"}
How much does it cost?
Telegram Channel Scraper uses pay-per-event pricing. You pay $1.00 per 1,000 posts ($0.001 per post) on the Free plan. Apify platform usage is included in the price.
| Plan | Price per 1,000 posts |
|---|---|
| Free | $1.00 |
| Bronze (-10%) | $0.90 |
| Silver (-20%) | $0.80 |
| Gold and higher (-30%) | $0.70 |
Worked examples on the Free plan:
- The latest 100 posts of one channel = $0.10
- 10 channels, 1,000 posts each = 10,000 posts = $10.00
- The full history of a channel with 50,000 posts = $50.00
What you are not charged for:
- Error rows: channels that do not exist, private channels, groups and user accounts with no public preview, and channels where no posts were found.
- Posts skipped by the Only posts newer than date.
- Duplicate posts: a post seen twice while paging the same channel is returned once.
Use cases
- News and crypto monitoring: follow announcement channels every day and alert your team about new posts.
- Engagement analysis: compare views and reactions per post to see which content performs best.
- Ad placement research: check subscribers against real post views before you buy an ad in a channel.
- Competitor tracking: archive what competing brands post and how often.
- Media and academic research: export a channel's full history for content, sentiment or narrative analysis.
- Link and source tracking: use
linksandforwardedFromto see what a channel shares and which channels it forwards from. - AI datasets: feed post text to summaries, classifiers or a searchable archive.
Tips and limits
- Public channels only: the scraper works for channels with a public web preview at
t.me/s/<channel>. Private channels, groups and user accounts have no preview and return an error row. - Counts are rounded: Telegram's web preview shows numbers like
2.8Mor55.9K, and the scraper turns them into2800000and55900. Views, subscribers and reaction counts are therefore approximate for large numbers. - Paid stars count in the total:
totalReactionsadds up every reaction, includingpaid-stars. - Custom emoji: custom emoji reactions come as
custom:<id>because the preview does not show them as normal emoji. - Media links are temporary:
videoandphotosURLs point to Telegram's servers and can stop working after a while. Download the files soon if you need to keep them. - Date filter: posts are read newest first and paging stops at the first post older than your date.
- Links: use usernames or
t.melinks. Other link formats are not recognized. - Enter each channel once: duplicates are not merged, so
durovandhttps://t.me/durovin the same run scrape (and charge) the channel twice. - Error rows:
Channel not found or has no public previewmeans the channel does not exist or is not public;No posts foundmeans the channel loaded but no posts came back (for example, none newer than your date). Both are free.
Use it from the API, Python or JavaScript
You can run the scraper and read the posts with the official Apify clients. Replace YOUR_TOKEN with your Apify API token.
JavaScript (Node.js):
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_TOKEN' });const input = { channels: ['durov'], maxPostsPerChannel: 200 };const run = await client.actor('juliob.rangel/telegram-channel-scraper-fast').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')input = {'channels': ['durov'], 'maxPostsPerChannel': 200}run = client.actor('juliob.rangel/telegram-channel-scraper-fast').call(run_input=input)items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
The scraper also works with Make, Zapier and n8n, can export results to Google Sheets, can call your webhook when a run finishes, and can be used by AI agents through the Apify MCP server.
FAQ
Do I need a Telegram account, phone number or API key? No. The scraper reads the public web preview of each channel. You do not need a Telegram account or the Telegram API.
Can I export Telegram posts to Excel or CSV? Yes. Open the Output tab after the run and download the dataset as Excel, CSV, JSON or HTML, or send it to Google Sheets.
How many posts can I get? Up to 100,000 per channel in one run, limited by how many posts the channel has.
Can I scrape Telegram groups or private channels? No. Only public channels with a web preview work. Groups, private channels and user accounts return an error row and are not charged.
Can I get the comments under channel posts? No. The scraper returns the posts, their views and their reactions, not the comments.
Is it legal to scrape Telegram channels? The scraper only collects publicly available data. You are responsible for complying with Telegram's terms and with privacy laws such as GDPR and LGPD. Posts can contain personal data, such as author signatures or names in the text, so you need a legitimate reason to collect and use it.
Why did I get an error row? The channel does not exist, is not public, or no posts were found (for example, none after your start date). Error rows are not charged.
Related scrapers
- Threads Scraper (Profiles, Posts, Search)
- Substack Scraper (Posts, Likes, Comments, Full Text)
- Instagram Posts Scraper (Reels, Likes, Views, Captions)
- YouTube Channel Videos Scraper (Fast & Cheap)
- Google News Scraper (Real Article URLs)
Extrator de Canais do Telegram (PT-BR)
Colete posts de canais públicos do Telegram sem login nem chave de API: texto, data, visualizações, reações, fotos, vídeos e links, além do nome do canal e número de inscritos. Você paga só por post retornado.