Telegram Scraper – Channel Posts, Views & Reactions
Pricing
from $0.80 / 1,000 results
Telegram Scraper – Channel Posts, Views & Reactions
Scrape public Telegram channels: posts, text, views, reactions, media, links, hashtags + channel info (subscribers, verified). Date range, keyword filter & search. No login or API key.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
ninhothedev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Telegram Scraper extracts posts from any public Telegram channel – full text, date, views, reactions, photos, videos, files, links, hashtags, mentions, forwards and replies – plus channel info such as subscribers, description and verified badge. It reads Telegram's public web preview (t.me/s/<channel>), so you need no Telegram account, no phone number and no API key. Scrape one channel or hundreds, go back through the whole history, filter by date range or keywords and export to JSON, CSV, Excel or Google Sheets.
What data can you extract?
| Field | Example | Description |
|---|---|---|
channel | durov | Channel username |
post_id / id | 552 / durov/552 | Message ID and stable unique ID |
url | https://t.me/durov/552 | Direct link to the post |
date | 2026-10-11T14:52:40+00:00 | Publish time (ISO 8601, UTC) |
text | Designers × AI … | Full post text with line breaks and emoji |
views | 912000 | View count |
reactions_total / reactions | 25330 / [{"emoji":"👍","count":74900}] | Total and per-emoji reactions (incl. paid ⭐ stars) |
media_type | photo, video, album, file, audio, poll | Type of attached media |
photos, videos, video_thumbnails, documents | URLs / objects | Media URLs, video thumbnails & durations, file titles |
links, hashtags, mentions | ["https://telegram.org/blog"], ["news"], ["durov"] | Everything extracted from the text |
link_preview_* | title, description, site, image | Rich link preview of the post |
is_forwarded, forwarded_from_name, forwarded_from_url | true, Telegram | Forward source |
is_reply, reply_to_post_id | true, 78557 | Reply-to message |
is_edited | true | Post was edited |
author_signature | Pavel Durov | Admin signature (if the channel signs posts) |
channel_title, channel_subscribers | Pavel Durov, 10400000 | Channel context on every post |
Channel info row (type = "channel"): title, description, subscribers, photos / videos / files / links counts, verified, scam / fake flags, avatar URL. Public groups return title, member count, online count and description.
How to use
- Add one or more channels –
durov,@telegram,https://t.me/durovorhttps://t.me/s/durovall work. - Set Max posts per channel (0 = full history) and optional filters: date range (
since/until, e.g."7 days"or"2026-01-01"), keyword filter or Telegram search query. - Click Start and download the results as JSON, CSV, Excel, XML or HTML – or fetch them via API.
{"channels": ["durov", "https://t.me/telegram", "@breakingmash"],"maxPostsPerChannel": 200,"since": "30 days","keywords": ["ai", "crypto"],"includeChannelInfo": true}
Modes
- Channel history – newest posts first, paging backwards 20 posts per request until your limit or date is reached.
- Date range –
since/untilwith absolute or relative dates; scraping stops as soon as older posts appear. - Keyword filter – whole-word, case-insensitive, any/all match; matched words in
matched_keywords. - Search across channels –
searchQueryruns Telegram's own in-channel search on every channel in your list. - Media only – skip text-only posts.
Output example
Real post from a test run:
{"type": "post","id": "durov/552","channel": "durov","post_id": 552,"url": "https://t.me/durov/552","date": "2026-10-11T14:52:40+00:00","text": "✨ Designers × AI\n\n🆕 The mockup era is over. Today’s AI tools give every designer a superpower: you can now craft your ideas, not just draw them. \n\nThe gap between “what if…?” and “look, it works!” has never been smaller,","views": 913000,"reactions_total": 25350,"reactions": [{"emoji": "⭐","count": 5410,"paid": true},{"emoji": "custom:5936157098181135162","count": 11300,"paid": false},{"emoji": "custom:5399847211989246390","count": 4940,"paid": false}],"media_type": "video","media_count": 1,"photos": [],"videos": [{"url": null,"thumbnail": "https://cdn4.telesco.pe/file/OiJcyAExOKYdCDKh5YmkrTUa3_9poHu…","duration": "1:15","post_url": "https://t.me/durov/552"}],"video_thumbnails": ["https://cdn4.telesco.pe/file/OiJcyAExOKYdCDKh5YmkrTUa3_9poHu…"],"documents": [],"poll": null,"links": [],"hashtags": [],"mentions": ["designers"],"link_preview_url": null,"link_preview_title": null,"link_preview_description": null,"link_preview_site_name": null,"link_preview_image": null,"is_forwarded": true,"forwarded_from_name": null,"forwarded_from_url": null,"is_reply": false,"reply_to_post_id": null,"reply_to_url": null,"is_edited": false,"is_service_message": false,"author_signature": "Pavel Durov","sender_name": "Pavel Durov","sender_url": "https://t.me/durov","channel_title": "Pavel Durov","channel_subscribers": 10400000,"channel_url": "https://t.me/durov","matched_keywords": [],"search_query": null,"input": "durov","scraped_at": "2026-10-15T19:58:14+00:00"}
Channel info row:
{"type": "channel","id": "channel:durov","channel": "durov","url": "https://t.me/durov","title": "Pavel Durov","description": "Founder of Telegram.","subscribers": 10400000,"photos_count": 102,"videos_count": 47,"files_count": null,"links_count": 200,"verified": true,"scam": false,"fake": false,"avatar_url": "https://cdn4.telesco.pe/file/MULwMfcgvO-kscu6vwzjmymEfId90Vg…","online_count": null,"entity_type": "channel","preview_available": true,"input": "durov","scraped_at": "2026-10-15T19:58:14+00:00"}
A run summary (posts per channel, errors, requests) is stored in the key-value store record RUN_SUMMARY.
Pricing
Pay per result: $0.80 per 1,000 results ($0.0008 per post or channel row) plus a tiny start fee. Scraping 1,000 posts costs about $0.80, 10,000 posts about $8. No monthly rental, no proxy needed for normal use. The scraper is HTTP-only and very fast (≈ 20 posts per request), so runs finish in seconds.
Use cases
- Media monitoring & news tracking – follow news, crypto and politics channels and pipe new posts into dashboards or alerts.
- Lead generation – find active channels in your niche, extract links, @mentions and contact handles from posts and descriptions.
- Market & competitor research – benchmark views, reactions and posting frequency of competitor channels.
- Influencer & ad sales – compare subscribers, average views and engagement before buying ads.
- OSINT & research – archive public channel history with dates, forwards and edits for analysis.
- AI / NLP datasets – build clean text corpora with hashtags and metadata for sentiment or topic models.
Integrations
Use the scraper from the Apify API, the Apify Python/JS clients, Make, Zapier, n8n, Google Sheets, Slack, webhooks or schedule it to run hourly/daily.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("ninhothedev/telegram-scraper").call(run_input={"channels": ["durov", "telegram"],"maxPostsPerChannel": 100,"since": "7 days",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["url"], item.get("views"), item.get("text", "")[:80])
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('ninhothedev/telegram-scraper').call({ channels: ['durov'], maxPostsPerChannel: 50 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
FAQ
Is it legal to scrape Telegram? The scraper only reads public channels that anyone can view in a browser at t.me/s/… without logging in. It does not access private chats or groups. Make sure your use of personal data complies with GDPR and applicable laws.
Do I need a Telegram account or API key? No. No login, no phone number, no api_id/api_hash.
Can I scrape groups or private channels? Private channels and invite links (t.me/+…) are not supported. Public groups (and channels with the web preview disabled) return their profile info (title, members, online, description) – Telegram does not publish their messages on the web.
Are comment counts and forward counts available? Telegram's public web preview does not show comment or forward counts, so they are not included. Views, reactions, forward source and reply-to are included.
How far back can I go? The entire public history – set Max posts per channel to 0. Use Start before post ID to resume big scrapes.
Do I need a proxy? Normally not. For very large scrapes (thousands of pages) enable Apify Proxy to avoid rate limits; the scraper retries with backoff and rotates sessions automatically.
Media URLs expire? Telegram CDN links (cdn*.telesco.pe) are signed and can expire after some time – download media soon after the run if you need it.
Support – open an issue on the actor's Issues tab; feature requests are welcome.
Related scrapers by ninhothedev
- YouTube Channel Scraper – channel stats & videos
- Website Contact Extractor – emails & socials from websites linked in posts
- Email Finder Scraper – find business emails